home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / comm / mail / YAM22src.lha / YAM_COg.c < prev    next >
C/C++ Source or Header  |  2000-11-03  |  74KB  |  1,456 lines

  1. /***************************************************************************
  2.  
  3.  YAM - Yet Another Mailer
  4.  Copyright (C) 2000  Marcel Beck <mbeck@yam.ch>
  5.  
  6.  This program is free software; you can redistribute it and/or modify
  7.  it under the terms of the GNU General Public License as published by
  8.  the Free Software Foundation; either version 2 of the License, or
  9.  (at your option) any later version.
  10.  
  11.  This program is distributed in the hope that it will be useful,
  12.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  GNU General Public License for more details.
  15.  
  16.  You should have received a copy of the GNU General Public License
  17.  along with this program; if not, write to the Free Software
  18.  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.  
  20.  YAM Official Support Site :  http://www.yam.ch
  21.  YAM OpenSource project    :  http://sourceforge.net/projects/yamos/
  22.  
  23. ***************************************************************************/
  24.  
  25. #include "YAM.h"
  26.  
  27. /***************************************************************************
  28.  Modul: Configuration - GUI for sections
  29. ***************************************************************************/
  30.  
  31. /*** Hooks ***/
  32. /// PO_List2TextFunc
  33. //  Copies listview selection to text gadget
  34. SAVEDS ASM void PO_List2TextFunc(REG(a2) Object *list, REG(a1) Object *text)
  35. {
  36.    char *selection;
  37.    DoMethod(list, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &selection);
  38.    if (selection) if (strcmp(selection, GetStr(MSG_MA_Cancel))) set(text, MUIA_Text_Contents, selection);
  39. }
  40. MakeHook(PO_List2TextHook, PO_List2TextFunc);
  41. ///
  42. /// CO_LV_TDspFunc
  43. //  Translation table listview display hook
  44. SAVEDS ASM long CO_LV_TDspFunc(REG(a0) struct Hook *hook, REG(a2) char **array, REG(a1) struct TranslationTable *entry)
  45. {
  46.    array[0] = entry->Name;
  47.    return 0;
  48. }
  49. MakeHook(CO_LV_TDspHook,CO_LV_TDspFunc);
  50. ///
  51. /// CO_LV_TConFunc
  52. //  Translation table listview construction hook
  53. SAVEDS ASM struct TranslationTable *CO_LV_TConFunc(REG(a1) struct TranslationTable *tt)
  54. {
  55.    struct TranslationTable *entry = malloc(sizeof(struct TranslationTable));
  56.    memcpy(entry, tt, sizeof(struct TranslationTable));
  57.    return entry;
  58. }
  59. MakeHook(CO_LV_TConHook, CO_LV_TConFunc);
  60. ///
  61. /// CO_LV_RxDspFunc
  62. //  ARexx listview display hook
  63. SAVEDS ASM long CO_LV_RxDspFunc(REG(a0) struct Hook *hook, REG(a2) char **array, REG(a1) int num)
  64. {
  65.    static char rexxoptm[SIZE_DEFAULT];
  66.    int scr = num-1;
  67.  
  68.    strcpy(array[0] = rexxoptm, "");
  69.    if (*CE->RX[scr].Script) strcat(rexxoptm, MUIX_PH);
  70.    switch (scr)
  71.    {
  72.       case MACRO_STARTUP:   strcat(rexxoptm, GetStr(MSG_CO_ScriptStartup)); break;
  73.       case MACRO_QUIT:      strcat(rexxoptm, GetStr(MSG_CO_ScriptTerminate)); break;
  74.       case MACRO_PREGET:    strcat(rexxoptm, GetStr(MSG_CO_ScriptPreGetMail)); break;
  75.       case MACRO_POSTGET:   strcat(rexxoptm, GetStr(MSG_CO_ScriptPostGetMail)); break;
  76.       case MACRO_NEWMSG:    strcat(rexxoptm, GetStr(MSG_CO_ScriptNewMsg)); break;
  77.       case MACRO_PRESEND:   strcat(rexxoptm, GetStr(MSG_CO_ScriptPreSendMail)); break;
  78.       case MACRO_POSTSEND:  strcat(rexxoptm, GetStr(MSG_CO_ScriptPostSendMail)); break;
  79.       case MACRO_READ:      strcat(rexxoptm, GetStr(MSG_CO_ScriptReadMsg)); break;
  80.       case MACRO_PREWRITE:  strcat(rexxoptm, GetStr(MSG_CO_ScriptPreWriteMsg)); break;
  81.       case MACRO_POSTWRITE: strcat(rexxoptm, GetStr(MSG_CO_ScriptPostWriteMsg)); break;
  82.       case MACRO_URL:       strcat(rexxoptm, GetStr(MSG_CO_ScriptClickURL)); break;
  83.       default: sprintf(&rexxoptm[strlen(rexxoptm)], GetStr(MSG_CO_ScriptMenu), num);
  84.    }
  85.    return 0;
  86. }
  87. MakeHook(CO_LV_RxDspHook,CO_LV_RxDspFunc);
  88. ///
  89. /// PO_HandleXPKFunc
  90. //  Copies XPK sublibrary id from list to string gadget
  91. SAVEDS ASM void PO_HandleXPKFunc(REG(a1) APTR text, REG(a2) APTR pop)
  92. {
  93.    char *entry;
  94.    DoMethod(pop, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &entry);
  95.    if (entry) set(text, MUIA_Text_Contents, entry);
  96. }
  97. MakeHook(PO_HandleXPKHook, PO_HandleXPKFunc);
  98. ///
  99. /// MakeXPKPop
  100. //  Creates a popup list of available XPK sublibraries
  101. APTR MakeXPKPop(APTR *text, BOOL pack, BOOL encrypt)
  102. {
  103.    APTR lv, po;
  104.  
  105.    if (po = PopobjectObject,
  106.       MUIA_Popstring_String, *text = TextObject, TextFrame,
  107.          MUIA_Background, MUII_TextBack,
  108.          MUIA_FixWidthTxt, "MMMM",
  109.       End,
  110.       MUIA_Popstring_Button, PopButton(MUII_PopUp),
  111.       MUIA_Popobject_ObjStrHook, &PO_HandleXPKHook,
  112.       MUIA_Popobject_WindowHook, &PO_WindowHook,
  113.       MUIA_Popobject_Object, lv = ListviewObject,
  114.          MUIA_Listview_List, ListObject,
  115.             InputListFrame,
  116.             MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
  117.             MUIA_List_DestructHook, MUIV_List_DestructHook_String,
  118.          End,
  119.       End,
  120.    End)
  121.    {
  122.       struct XpkPackerList xpl;
  123.       if (XpkBase) if (!XpkQueryTags(XPK_PackersQuery, &xpl, TAG_DONE))
  124.       {
  125.          struct XpkPackerInfo xpi;
  126.          int i;
  127.          for (i = 0; i < xpl.xpl_NumPackers; i++)
  128.          {
  129.             if (!XpkQueryTags(XPK_PackMethod, xpl.xpl_Packer[i], XPK_PackerQuery, &xpi, TAG_DONE))
  130.             {
  131.                BOOL suits = TRUE;
  132.                if (encrypt && !(xpi.xpi_Flags&XPKIF_ENCRYPTION)) suits = FALSE;
  133.                if (pack && !(xpi.xpi_Flags&0x3f)) suits = FALSE;
  134.                if (suits) DoMethod(lv, MUIM_List_InsertSingle, xpl.xpl_Packer[i], MUIV_List_Insert_Sorted);
  135.             }
  136.          }
  137.       }
  138.       DoMethod(lv,MUIM_Notify,MUIA_Listview_DoubleClick,TRUE,po,2,MUIM_Popstring_Close,TRUE);
  139.    }
  140.    return po;
  141. }
  142. ///
  143. /// PO_HandleTrans
  144. //  Copies filename of selected translation table to the string gadget
  145. SAVEDS ASM void PO_HandleTrans(REG(a1) APTR string, REG(a2) APTR pop)
  146. {
  147.    struct TranslationTable *entry;
  148.    DoMethod(pop, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &entry);
  149.    if (entry) setstring(string, entry->File);
  150. }
  151. MakeHook(PO_HandleTransHook, PO_HandleTrans);
  152. ///
  153. /// MakeTransPop
  154. //  Creates a popup list of available translation tables
  155. APTR MakeTransPop(APTR *string, BOOL output,  char *shortcut)
  156. {
  157.    APTR lv, po;
  158.  
  159.    if (po = PopobjectObject,
  160.       MUIA_Popstring_String, *string = MakeString(SIZE_PATHFILE, shortcut),
  161.       MUIA_Popstring_Button, PopButton(MUII_PopUp),
  162.       MUIA_Popobject_ObjStrHook, &PO_HandleTransHook,
  163.       MUIA_Popobject_WindowHook, &PO_WindowHook,
  164.       MUIA_Popobject_Object, lv = ListviewObject,
  165.          MUIA_Listview_ScrollerPos, MUIV_Listview_ScrollerPos_None,
  166.          MUIA_Listview_List, ListObject,
  167.             InputListFrame,
  168.             MUIA_List_DisplayHook, &CO_LV_TDspHook,
  169.             MUIA_List_ConstructHook, &CO_LV_TConHook,
  170.             MUIA_List_DestructHook, &GeneralDesHook,
  171.          End,
  172.       End,
  173.    End)
  174.    {
  175.       char dir[SIZE_PATH], file[SIZE_PATHFILE];
  176.       struct FileInfoBlock *fib;
  177.       BPTR lock;
  178.       strmfp(dir, G->ProgDir, "charsets");
  179.       fib = AllocDosObject(DOS_FIB,NULL);
  180.       if (lock = Lock(dir, ACCESS_READ))
  181.       {
  182.          Examine(lock, fib);
  183.          while (ExNext(lock,fib) && (IoErr() != ERROR_NO_MORE_ENTRIES))
  184.          {
  185.             struct TranslationTable *tt = NULL;
  186.             strmfp(file, dir, fib->fib_FileName);
  187.             if (LoadTranslationTable(&tt, file))
  188.             {
  189.                if ((output && *tt->DestCharset) || (!output && *tt->SourceCharset))
  190.                   DoMethod(lv, MUIM_List_InsertSingle, tt, MUIV_List_Insert_Bottom);
  191.                free(tt);
  192.             }
  193.          }
  194.          UnLock(lock);
  195.       }
  196.       FreeDosObject(DOS_FIB,fib);
  197.       DoMethod(lv,MUIM_Notify,MUIA_Listview_DoubleClick,TRUE,po,2,MUIM_Popstring_Close,TRUE);
  198.    }
  199.    return po;
  200. }
  201. ///
  202. /// PO_HandleVar
  203. //  Pastes an entry from variable listview into string gadget
  204. SAVEDS ASM void PO_HandleVar(REG(a1) APTR string, REG(a2) APTR pop)
  205. {
  206.    char *var, buf[3];
  207.  
  208.    DoMethod(pop, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &var);
  209.    if (var)
  210.    {
  211.       buf[0] = var[0]; buf[1] = var[1]; buf[2] = 0;
  212.       DoMethod(string, MUIM_BetterString_Insert, buf, MUIV_BetterString_Insert_BufferPos);
  213.    }
  214. }
  215. MakeHook(PO_HandleVarHook, PO_HandleVar);
  216. ///
  217. /// MakeVarPop
  218. //  Creates a popup list containing variables and descriptions for phrases etc.
  219. APTR MakeVarPop(APTR *string, int mode, int size, char *shortcut)
  220. {
  221.    APTR lv, po;
  222.  
  223.    if (po = PopobjectObject,
  224.       MUIA_Popstring_String, *string = MakeString(size, shortcut),
  225.       MUIA_Popstring_Button, PopButton(MUII_PopUp),
  226.       MUIA_Popobject_ObjStrHook, &PO_HandleVarHook,
  227.       MUIA_Popobject_WindowHook, &PO_WindowHook,
  228.       MUIA_Popobject_Object, lv = ListviewObject,
  229.          MUIA_Listview_ScrollerPos, MUIV_Listview_ScrollerPos_None,
  230.          MUIA_Listview_List, ListObject,
  231.             InputListFrame,
  232.             MUIA_List_AdjustHeight, TRUE,
  233.          End,
  234.       End,
  235.    End)
  236.    {
  237.       switch (mode)
  238.       {
  239.          case 0:
  240.          case 1:  DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_LineBreak), MUIV_List_Insert_Bottom);
  241.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(mode?MSG_CO_RecptName:MSG_CO_ORecptName), MUIV_List_Insert_Bottom);
  242.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(mode?MSG_CO_RecptFirstname:MSG_CO_ORecptFirstname), MUIV_List_Insert_Bottom);
  243.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(mode?MSG_CO_RecptAddress:MSG_CO_ORecptAddress), MUIV_List_Insert_Bottom);
  244.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderName), MUIV_List_Insert_Bottom);
  245.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderFirstname), MUIV_List_Insert_Bottom);
  246.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderAddress), MUIV_List_Insert_Bottom);
  247.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderSubject), MUIV_List_Insert_Bottom);
  248.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderDate), MUIV_List_Insert_Bottom);
  249.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderTime), MUIV_List_Insert_Bottom);
  250.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderDOW), MUIV_List_Insert_Bottom);
  251.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderMsgID), MUIV_List_Insert_Bottom);
  252.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_CompleteHeader), MUIV_List_Insert_Bottom);
  253.                   break;
  254.          case 2:  DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_SenderInitials), MUIV_List_Insert_Bottom);
  255.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_Sender2Initials), MUIV_List_Insert_Bottom);
  256.                   break;
  257.          case 3:  DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_ArchiveName), MUIV_List_Insert_Bottom);
  258.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_ArchiveFiles), MUIV_List_Insert_Bottom);
  259.                   DoMethod(lv, MUIM_List_InsertSingle, GetStr(MSG_CO_ArchiveFilelist), MUIV_List_Insert_Bottom);
  260.                   break;
  261.  
  262.       }
  263.       DoMethod(lv,MUIM_Notify,MUIA_Listview_DoubleClick,TRUE,po,2,MUIM_Popstring_Close,TRUE);
  264.    }
  265.    return po;
  266. }
  267. ///
  268. /// MakePhraseGroup
  269. //  Creates a cycle/string gadgets for forward and reply phrases
  270. APTR MakePhraseGroup(APTR *hello, APTR *intro, APTR *bye, char *label, char *help)
  271. {
  272.    APTR grp, cycl, pgrp;
  273.    static char *cytext[4];
  274.    cytext[0] = GetStr(MSG_CO_PhraseOpen);
  275.    cytext[1] = GetStr(MSG_CO_PhraseIntro);
  276.    cytext[2] = GetStr(MSG_CO_PhraseClose);
  277.    cytext[3] = NULL;
  278.    if (grp = HGroup,
  279.          MUIA_Group_HorizSpacing, 1,
  280.          Child, cycl = CycleObject,
  281.             MUIA_CycleChain, 1,
  282.             MUIA_Font, MUIV_Font_Button,
  283.             MUIA_Cycle_Entries, cytext,
  284.             MUIA_ControlChar, ShortCut(label),
  285.             MUIA_Weight, 0,
  286.          End,
  287.          Child, pgrp = PageGroup,
  288.             Child, MakeVarPop(hello, 1, SIZE_INTRO, ""),
  289.             Child, MakeVarPop(intro, 1, SIZE_INTRO, ""),
  290.             Child, MakeVarPop(bye, 1, SIZE_INTRO, ""),
  291.          End,
  292.          MUIA_ShortHelp, help,
  293.       End)
  294.    {
  295.       DoMethod(cycl, MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime, pgrp, 3, MUIM_Set, MUIA_Group_ActivePage, MUIV_TriggerValue);
  296.    }
  297.    return grp;
  298. }
  299. ///
  300. /// MakeStaticCheck
  301. //  Creates non-interactive checkmark gadget
  302. Object *MakeStaticCheck(void)
  303. {
  304.    return
  305.    ImageObject,
  306.       ImageButtonFrame,
  307.       MUIA_Image_Spec  , MUII_CheckMark,
  308.       MUIA_Background  , MUII_ButtonBack,
  309.       MUIA_ShowSelState, FALSE,
  310.       MUIA_Selected    , TRUE,
  311.       MUIA_Disabled    , TRUE,
  312.    End;
  313. }
  314. ///
  315. /// CO_PlaySoundFunc
  316. //  Plays sound file referred by the string gadget
  317. SAVEDS ASM void CO_PlaySoundFunc(REG(a1) int *arg)
  318. {
  319.    PlaySound(GetMUIStringPtr((struct Object *)arg[0]));
  320. }
  321. MakeHook(CO_PlaySoundHook,CO_PlaySoundFunc);
  322. ///
  323.  
  324. /*** Pages ***/
  325. /// CO_Page0  (Start)
  326. APTR CO_Page0(struct CO_ClassData *data)
  327. {
  328.    APTR grp;
  329.    static char *tzone[26];
  330.    tzone[ 0] = GetStr(MSG_CO_TZoneM12);
  331.    tzone[ 1] = GetStr(MSG_CO_TZoneM11);
  332.    tzone[ 2] = GetStr(MSG_CO_TZoneM10);
  333.    tzone[ 3] = GetStr(MSG_CO_TZoneM9);
  334.    tzone[ 4] = GetStr(MSG_CO_TZoneM8);
  335.    tzone[ 5] = GetStr(MSG_CO_TZoneM7);
  336.    tzone[ 6] = GetStr(MSG_CO_TZoneM6);
  337.    tzone[ 7] = GetStr(MSG_CO_TZoneM5);
  338.    tzone[ 8] = GetStr(MSG_CO_TZoneM4);
  339.    tzone[ 9] = GetStr(MSG_CO_TZoneM3);
  340.    tzone[10] = GetStr(MSG_CO_TZoneM2);
  341.    tzone[11] = GetStr(MSG_CO_TZoneM1);
  342.    tzone[12] = GetStr(MSG_CO_TZone0);
  343.    tzone[13] = GetStr(MSG_CO_TZone1);
  344.    tzone[14] = GetStr(MSG_CO_TZone2);
  345.    tzone[15] = GetStr(MSG_CO_TZone3);
  346.    tzone[16] = GetStr(MSG_CO_TZone4);
  347.    tzone[17] = GetStr(MSG_CO_TZone5);
  348.    tzone[18] = GetStr(MSG_CO_TZone6);
  349.    tzone[19] = GetStr(MSG_CO_TZone7);
  350.    tzone[20] = GetStr(MSG_CO_TZone8);
  351.    tzone[21] = GetStr(MSG_CO_TZone9);
  352.    tzone[22] = GetStr(MSG_CO_TZone10);
  353.    tzone[23] = GetStr(MSG_CO_TZone11);
  354.    tzone[24] = GetStr(MSG_CO_TZone12);
  355.    tzone[25] = NULL;
  356.    if (grp = VGroup,
  357.          MUIA_HelpNode, "CO00",
  358.          Child, HVSpace,
  359.          Child, ColGroup(2), GroupFrameT(GetStr(MSG_CO_MinConfig)),
  360.             Child, Label2(GetStr(MSG_CO_RealName)),
  361.             Child, data->GUI.ST_REALNAME = MakeString(SIZE_REALNAME,GetStr(MSG_CO_RealName)),
  362.             Child, Label2(GetStr(MSG_CO_EmailAddress)),
  363.             Child, data->GUI.ST_EMAIL    = MakeString(SIZE_ADDRESS,GetStr(MSG_CO_EmailAddress)),
  364.             Child, Label2(GetStr(MSG_CO_POPServer)),
  365.             Child, data->GUI.ST_POPHOST0  = MakeString(SIZE_HOST,GetStr(MSG_CO_POPServer)),
  366.             Child, Label2(GetStr(MSG_CO_Password)),
  367.             Child, data->GUI.ST_PASSWD0   = MakePassString(GetStr(MSG_CO_Password)),
  368.          End,
  369.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_TimeZone)),
  370.             Child, data->GUI.CY_TZONE = MakeCycle(tzone,GetStr(MSG_CO_TimeZone)),
  371.             Child, MakeCheckGroup((Object **)&data->GUI.CH_DLSAVING, GetStr(MSG_CO_DaylightSaving)),
  372.          End,
  373.          Child, HVSpace,
  374.       End)
  375.    {
  376.       SetHelp(data->GUI.ST_REALNAME  ,MSG_HELP_CO_ST_REALNAME  );
  377.       SetHelp(data->GUI.ST_EMAIL     ,MSG_HELP_CO_ST_EMAIL     );
  378.       SetHelp(data->GUI.ST_POPHOST0  ,MSG_HELP_CO_ST_POPHOST   );
  379.       SetHelp(data->GUI.ST_PASSWD0   ,MSG_HELP_CO_ST_PASSWD    );
  380.       SetHelp(data->GUI.CY_TZONE     ,MSG_HELP_CO_CY_TZONE     );
  381.       SetHelp(data->GUI.CH_DLSAVING  ,MSG_HELP_CO_CH_DLSAVING  );
  382.       set(data->GUI.CH_DLSAVING, MUIA_Disabled, G->CO_DST > 0);
  383.       DoMethod(data->GUI.ST_POPHOST0 ,MUIM_Notify,MUIA_String_Contents, MUIV_EveryTime,MUIV_Notify_Application ,3,MUIM_CallHook,&CO_GetDefaultPOPHook,0);
  384.       DoMethod(data->GUI.ST_PASSWD0  ,MUIM_Notify,MUIA_String_Contents, MUIV_EveryTime,MUIV_Notify_Application ,3,MUIM_CallHook,&CO_GetDefaultPOPHook,0);
  385.    }
  386.    return grp;
  387. }
  388. ///
  389. /// CO_Page1  (TCP/IP)
  390. APTR CO_Page1(struct CO_ClassData *data)
  391. {
  392.    APTR grp;
  393.    if (grp = VGroup,
  394.          MUIA_HelpNode, "CO01",
  395.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_SendMail)),
  396.             Child, ColGroup(4),
  397.                Child, Label2(GetStr(MSG_CO_Server)),
  398.                Child, data->GUI.ST_SMTPHOST = MakeString(SIZE_HOST,GetStr(MSG_CO_Server)),
  399.                Child, Label2(GetStr(MSG_CO_Domain)),
  400.                Child, data->GUI.ST_DOMAIN = MakeString(SIZE_HOST,GetStr(MSG_CO_Domain)),
  401.             End,
  402.             Child, MakeCheckGroup((Object **)&data->GUI.CH_SMTP8BIT, GetStr(MSG_CO_Allow8bit)),
  403.          End,
  404.          Child, HGroup, GroupFrameT(GetStr(MSG_CO_ReceiveMail)),
  405.             Child, ListviewObject,
  406.                MUIA_Weight, 60,
  407.                MUIA_CycleChain, 1,
  408.                MUIA_Listview_List, data->GUI.LV_POP3 = ListObject,
  409.                   InputListFrame,
  410.                End,
  411.             End,
  412.             Child, VGroup,
  413.                Child, data->GUI.GR_POP3 = VGroup,
  414.                   Child, ColGroup(2),
  415.                      Child, Label2(GetStr(MSG_CO_POPServer)),
  416.                      Child, data->GUI.ST_POPHOST = MakeString(SIZE_HOST,GetStr(MSG_CO_POPServer)),
  417.                      Child, Label2(GetStr(MSG_CO_POPUserID)),
  418.                      Child, data->GUI.ST_POPUSERID = MakeString(SIZE_USERID,GetStr(MSG_CO_POPUserID)),
  419.                      Child, Label2(GetStr(MSG_CO_Password)),
  420.                      Child, data->GUI.ST_PASSWD = MakePassString(GetStr(MSG_CO_Password)),
  421.                   End,
  422.                   Child, MakeCheckGroup((Object **)&data->GUI.CH_POPENABLED, GetStr(MSG_CO_POPActive)),
  423.                   Child, MakeCheckGroup((Object **)&data->GUI.CH_USEAPOP, GetStr(MSG_CO_UseAPOP)),
  424.                   Child, MakeCheckGroup((Object **)&data->GUI.CH_DELETE, GetStr(MSG_CO_DeleteServerMail)),
  425.                End,
  426.                Child, HVSpace,
  427.                Child, ColGroup(2),
  428.                   Child, data->GUI.BT_PADD = MakeButton(GetStr(MSG_Add)),
  429.                   Child, data->GUI.BT_PDEL = MakeButton(GetStr(MSG_Del)),
  430.                End,
  431.             End,
  432.          End,
  433.       End)
  434.    {
  435.       SetHelp(data->GUI.ST_SMTPHOST  ,MSG_HELP_CO_ST_SMTPHOST  );
  436.       SetHelp(data->GUI.ST_DOMAIN    ,MSG_HELP_CO_ST_DOMAIN    );
  437.       SetHelp(data->GUI.CH_SMTP8BIT  ,MSG_HELP_CO_CH_SMTP8BIT  );
  438.       SetHelp(data->GUI.LV_POP3      ,MSG_HELP_CO_LV_POP3      );
  439.       SetHelp(data->GUI.BT_PADD      ,MSG_HELP_CO_BT_PADD      );
  440.       SetHelp(data->GUI.BT_PDEL      ,MSG_HELP_CO_BT_PDEL      );
  441.       SetHelp(data->GUI.ST_POPHOST   ,MSG_HELP_CO_ST_POPHOST   );
  442.       SetHelp(data->GUI.ST_POPUSERID ,MSG_HELP_CO_ST_POPUSERID );
  443.       SetHelp(data->GUI.ST_PASSWD    ,MSG_HELP_CO_ST_PASSWD    );
  444.       SetHelp(data->GUI.CH_DELETE    ,MSG_HELP_CO_CH_DELETE    );
  445.       SetHelp(data->GUI.CH_USEAPOP   ,MSG_HELP_CO_CH_USEAPOP   );
  446.       SetHelp(data->GUI.CH_POPENABLED,MSG_HELP_CO_CH_POPENABLED);
  447.       DoMethod(grp,MUIM_MultiSet,MUIA_Disabled,TRUE,data->GUI.GR_POP3,data->GUI.BT_PDEL,NULL);
  448.       DoMethod(data->GUI.LV_POP3      ,MUIM_Notify,MUIA_List_Active    ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_GetP3EntryHook,0);
  449.       DoMethod(data->GUI.ST_POPHOST   ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_PutP3EntryHook,0);
  450.       DoMethod(data->GUI.ST_POPUSERID ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_PutP3EntryHook,0);
  451.       DoMethod(data->GUI.ST_PASSWD    ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_PutP3EntryHook,0);
  452.       DoMethod(data->GUI.CH_POPENABLED,MUIM_Notify,MUIA_Selected       ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_PutP3EntryHook,0);
  453.       DoMethod(data->GUI.CH_USEAPOP   ,MUIM_Notify,MUIA_Selected       ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_PutP3EntryHook,0);
  454.       DoMethod(data->GUI.CH_DELETE    ,MUIM_Notify,MUIA_Selected       ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_PutP3EntryHook,0);
  455.       DoMethod(data->GUI.BT_PADD      ,MUIM_Notify,MUIA_Pressed        ,FALSE         ,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_AddPOP3Hook,0);
  456.       DoMethod(data->GUI.BT_PDEL      ,MUIM_Notify,MUIA_Pressed        ,FALSE         ,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_DelPOP3Hook,0);
  457.    }
  458.    return grp;
  459. }
  460. ///
  461. /// CO_Page2  (New Mail)
  462. APTR CO_Page2(struct CO_ClassData *data)
  463. {
  464.    static char *mpsopt[5], *trwopt[4];
  465.    APTR grp, pa_notisound, bt_notisound, pa_noticmd;
  466.    mpsopt[0] = GetStr(MSG_CO_PSNever);
  467.    mpsopt[1] = GetStr(MSG_CO_PSLarge);
  468.    mpsopt[2] = GetStr(MSG_CO_PSAlways);
  469.    mpsopt[3] = GetStr(MSG_CO_PSAlwaysFast);
  470.    mpsopt[4] = NULL;
  471.    trwopt[0] = GetStr(MSG_CO_TWNever);
  472.    trwopt[1] = GetStr(MSG_CO_TWAuto);
  473.    trwopt[2] = GetStr(MSG_CO_TWAlways);
  474.    trwopt[3] = NULL;
  475.    if (grp = VGroup,
  476.          MUIA_HelpNode, "CO02",
  477.          Child, HVSpace,
  478.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_Download)),
  479.             Child, ColGroup(6),
  480.                Child, Label1(GetStr(MSG_CO_PreSelect)),
  481.                Child, data->GUI.CY_MSGSELECT = MakeCycle(mpsopt, GetStr(MSG_CO_PreSelect)),
  482.                Child, HSpace(8),
  483.                Child, Label1(GetStr(MSG_CO_WarnSize1)),
  484.                Child, data->GUI.ST_WARNSIZE = MakeInteger(5, GetStr(MSG_CO_WarnSize1)),
  485.                Child, Label2(GetStr(MSG_CO_WarnSize2)),
  486.                Child, LLabel1(GetStr(MSG_CO_TransferWin)),
  487.                Child, data->GUI.CY_TRANSWIN = MakeCycle(trwopt, GetStr(MSG_CO_TransferWin)),
  488.                Child, HSpace(0),
  489.                Child, HSpace(0),
  490.                Child, HSpace(0),
  491.             End,
  492.             Child, HGroup,
  493.                Child, data->GUI.CH_AVOIDDUP = MakeCheck(GetStr(MSG_CO_AvoidDuplicates)),
  494.                Child, LLabel1(GetStr(MSG_CO_AvoidDuplicates)),
  495.                Child, HSpace(0),
  496.                Child, data->GUI.CH_UPDSTAT = MakeCheck(GetStr(MSG_CO_UpdateStatus)),
  497.                Child, LLabel1(GetStr(MSG_CO_UpdateStatus)),
  498.             End,
  499.          End,
  500.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_AutoOperation)),
  501.             Child, HGroup,
  502.                Child, Label2(GetStr(MSG_CO_CheckMail)),
  503.                Child, data->GUI.ST_INTERVAL = MakeInteger(4, GetStr(MSG_CO_CheckMail)),
  504.                Child, Label2(GetStr(MSG_CO_Minutes)),
  505.                Child, HSpace(0),
  506.             End,
  507.             Child, MakeCheckGroup((Object **)&data->GUI.CH_DLLARGE, GetStr(MSG_CO_DownloadLarge)),
  508.          End,
  509.          Child, ColGroup(3), GroupFrameT(GetStr(MSG_CO_Notification)),
  510.             Child, data->GUI.CH_NOTIREQ = MakeCheck(GetStr(MSG_CO_NotiReq)),
  511.             Child, LLabel1(GetStr(MSG_CO_NotiReq)),
  512.             Child, HSpace(0),
  513.             Child, data->GUI.CH_NOTISOUND = MakeCheck(GetStr(MSG_CO_NotiSound)),
  514.             Child, LLabel2(GetStr(MSG_CO_NotiSound)),
  515.             Child, HGroup,
  516.                MUIA_Group_HorizSpacing, 0,
  517.                Child, pa_notisound = PopaslObject,
  518.                   MUIA_Popasl_Type     ,0,
  519.                   MUIA_Popstring_String,data->GUI.ST_NOTISOUND = MakeString(SIZE_PATHFILE,""),
  520.                   MUIA_Popstring_Button,PopButton(MUII_PopFile),
  521.                End,
  522.                Child, bt_notisound = PopButton(MUII_TapePlay),
  523.             End,
  524.             Child, data->GUI.CH_NOTICMD = MakeCheck(GetStr(MSG_CO_NotiCommand)),
  525.             Child, LLabel2(GetStr(MSG_CO_NotiCommand)),
  526.             Child, pa_noticmd = PopaslObject,
  527.                MUIA_Popasl_Type     ,0,
  528.                MUIA_Popstring_String,data->GUI.ST_NOTICMD = MakeString(SIZE_COMMAND,""),
  529.                MUIA_Popstring_Button,PopButton(MUII_PopFile),
  530.             End,
  531.          End,
  532.          Child, HVSpace,
  533.       End)
  534.    {
  535.       SetHelp(data->GUI.CH_AVOIDDUP  ,MSG_HELP_CO_CH_AVOIDDUP  );
  536.       SetHelp(data->GUI.CY_TRANSWIN  ,MSG_HELP_CO_CH_TRANSWIN  );
  537.       SetHelp(data->GUI.CY_MSGSELECT ,MSG_HELP_CO_CY_MSGSELECT );
  538.       SetHelp(data->GUI.CH_UPDSTAT   ,MSG_HELP_CO_CH_UPDSTAT   );
  539.       SetHelp(data->GUI.ST_WARNSIZE  ,MSG_HELP_CO_ST_WARNSIZE  );
  540.       SetHelp(data->GUI.ST_INTERVAL  ,MSG_HELP_CO_ST_INTERVAL  );
  541.       SetHelp(data->GUI.CH_DLLARGE   ,MSG_HELP_CO_CH_DLLARGE   );
  542.       SetHelp(data->GUI.CH_NOTIREQ   ,MSG_HELP_CO_CH_NOTIREQ   );
  543.       SetHelp(data->GUI.ST_NOTICMD   ,MSG_HELP_CO_ST_NOTICMD   );
  544.       SetHelp(data->GUI.ST_NOTISOUND ,MSG_HELP_CO_ST_NOTISOUND );
  545.       DoMethod(G->App, MUIM_MultiSet, MUIA_Disabled, TRUE, pa_notisound, bt_notisound, pa_noticmd, NULL);
  546.       set(bt_notisound,MUIA_CycleChain,1);
  547.       DoMethod(bt_notisound          ,MUIM_Notify,MUIA_Pressed ,FALSE         ,MUIV_Notify_Application,3,MUIM_CallHook,&CO_PlaySoundHook,data->GUI.ST_NOTISOUND);
  548.       DoMethod(data->GUI.CH_NOTISOUND,MUIM_Notify,MUIA_Selected,MUIV_EveryTime,pa_notisound           ,3,MUIM_Set,MUIA_Disabled,MUIV_NotTriggerValue);
  549.       DoMethod(data->GUI.CH_NOTISOUND,MUIM_Notify,MUIA_Selected,MUIV_EveryTime,bt_notisound           ,3,MUIM_Set,MUIA_Disabled,MUIV_NotTriggerValue);
  550.       DoMethod(data->GUI.CH_NOTICMD  ,MUIM_Notify,MUIA_Selected,MUIV_EveryTime,pa_noticmd             ,3,MUIM_Set,MUIA_Disabled,MUIV_NotTriggerValue);
  551.    }
  552.    return grp;
  553. }
  554. ///
  555. /// CO_Page3  (Rules)
  556. APTR CO_Page3(struct CO_ClassData *data)
  557. {
  558.    static char *bcrit[5], *rtitles[4];
  559.    APTR grp, po_response, po_execute, po_play, bt_aplay, bt_moveto;
  560.    bcrit[0] = GetStr(MSG_CO_CTNone);
  561.    bcrit[1] = GetStr(MSG_CO_CTOr);
  562.    bcrit[2] = GetStr(MSG_CO_CTAnd);
  563.    bcrit[3] = GetStr(MSG_CO_CTXor);
  564.    bcrit[4] = NULL;
  565.    rtitles[0] = GetStr(MSG_Options);
  566.    rtitles[1] = GetStr(MSG_CO_Comparison);
  567.    rtitles[2] = GetStr(MSG_CO_Action);
  568.    rtitles[3] = NULL;
  569.    if (grp = HGroup,
  570.          MUIA_HelpNode, "CO03",
  571.          MUIA_Background, MUII_GroupBack,
  572.          Child, VGroup,
  573.             MUIA_Weight, 50,
  574.             Child, ListviewObject,
  575.                MUIA_CycleChain, 1,
  576.                MUIA_Listview_DragType, MUIV_Listview_DragType_Immediate,
  577.                MUIA_Listview_List, data->GUI.LV_RULES = ListObject,
  578.                   MUIA_List_DragSortable, TRUE,
  579.                   InputListFrame,
  580.                End,
  581.             End,
  582.             Child, ColGroup(2),
  583.                Child, data->GUI.BT_RADD = MakeButton(GetStr(MSG_Add)),
  584.                Child, data->GUI.BT_RDEL = MakeButton(GetStr(MSG_Del)),
  585.             End,
  586.          End,
  587.          Child, RegisterGroup(rtitles),
  588.             MUIA_CycleChain,1,
  589.             Child, VGroup,
  590.                Child, HGroup,
  591.                   Child, Label2(GetStr(MSG_CO_Name)),
  592.                   Child, data->GUI.ST_RNAME = MakeString(SIZE_NAME,GetStr(MSG_CO_Name)),
  593.                End,
  594.                Child, MakeCheckGroup((Object **)&data->GUI.CH_REMOTE, GetStr(MSG_CO_Remote)),
  595.                Child, MakeCheckGroup((Object **)&data->GUI.CH_APPLYNEW, GetStr(MSG_CO_ApplyToNew)),
  596.                Child, MakeCheckGroup((Object **)&data->GUI.CH_APPLYSENT, GetStr(MSG_CO_ApplyToSent)),
  597.                Child, MakeCheckGroup((Object **)&data->GUI.CH_APPLYREQ, GetStr(MSG_CO_ApplyOnReq)),
  598.                Child, HVSpace,
  599.             End,
  600.             Child, data->GUI.GR_LRGROUP = PageGroup,
  601.                Child, data->GUI.GR_LOCAL = VGroup,
  602.                   Child, FI_ConstructSearchGroup(&data->GUI.GR_SEARCH[0], FALSE),
  603.                   Child, data->GUI.CY_COMBINE[0] = MakeCycle(bcrit,""),
  604.                   Child, FI_ConstructSearchGroup(&data->GUI.GR_SEARCH[1], FALSE),
  605.                   Child, HVSpace,
  606.                End,
  607.                Child, data->GUI.GR_REMOTE = VGroup,
  608.                   Child, FI_ConstructSearchGroup(&data->GUI.GR_SEARCH[2], TRUE),
  609.                   Child, data->GUI.CY_COMBINE[1] = MakeCycle(bcrit,""),
  610.                   Child, FI_ConstructSearchGroup(&data->GUI.GR_SEARCH[3], TRUE),
  611.                   Child, HVSpace,
  612.                End,
  613.             End,
  614.             Child, VGroup,
  615.                Child, ColGroup(3),
  616.                   Child, data->GUI.CH_ABOUNCE = MakeCheck(GetStr(MSG_CO_ActionBounce)),
  617.                   Child, LLabel2(GetStr(MSG_CO_ActionBounce)),
  618.                   Child, data->GUI.ST_ABOUNCE = MakeString(SIZE_ADDRESS, ""),
  619.                   Child, data->GUI.CH_AFORWARD = MakeCheck(GetStr(MSG_CO_ActionForward)),
  620.                   Child, LLabel2(GetStr(MSG_CO_ActionForward)),
  621.                   Child, data->GUI.ST_AFORWARD = MakeString(SIZE_ADDRESS, ""),
  622.                   Child, data->GUI.CH_ARESPONSE = MakeCheck(GetStr(MSG_CO_ActionReply)),
  623.                   Child, LLabel2(GetStr(MSG_CO_ActionReply)),
  624.                   Child, po_response = PopaslObject,
  625.                      MUIA_Popstring_String, data->GUI.ST_ARESPONSE = MakeString(SIZE_PATHFILE, ""),
  626.                      MUIA_Popstring_Button, PopButton(MUII_PopFile),
  627.                   End,
  628.                   Child, data->GUI.CH_AEXECUTE = MakeCheck(GetStr(MSG_CO_ActionExecute)),
  629.                   Child, LLabel2(GetStr(MSG_CO_ActionExecute)),
  630.                   Child, po_execute = PopaslObject,
  631.                      MUIA_Popstring_String, data->GUI.ST_AEXECUTE = MakeString(SIZE_PATHFILE, ""),
  632.                      MUIA_Popstring_Button, PopButton(MUII_PopFile),
  633.                   End,
  634.                   Child, data->GUI.CH_APLAY = MakeCheck(GetStr(MSG_CO_ActionPlay)),
  635.                   Child, LLabel2(GetStr(MSG_CO_ActionPlay)),
  636.                   Child, HGroup,
  637.                      MUIA_Group_HorizSpacing, 0,
  638.                      Child, po_play = PopaslObject,
  639.                         MUIA_Popstring_String, data->GUI.ST_APLAY = MakeString(SIZE_PATHFILE, ""),
  640.                         MUIA_Popstring_Button, PopButton(MUII_PopFile),
  641.                      End,
  642.                      Child, bt_aplay = PopButton(MUII_TapePlay),
  643.                   End,
  644.                   Child, data->GUI.CH_AMOVE = MakeCheck(GetStr(MSG_CO_ActionMove)),
  645.                   Child, LLabel2(GetStr(MSG_CO_ActionMove)),
  646.                   Child, data->GUI.PO_MOVETO = PopobjectObject,
  647.                       MUIA_Popstring_String, data->GUI.TX_MOVETO = TextObject,
  648.                          TextFrame,
  649.                       End,
  650.                       MUIA_Popstring_Button,bt_moveto = PopButton(MUII_PopUp),
  651.                       MUIA_Popobject_StrObjHook,&PO_InitFolderListHook,
  652.                       MUIA_Popobject_ObjStrHook,&PO_List2TextHook,
  653.                       MUIA_Popobject_WindowHook,&PO_WindowHook,
  654.                       MUIA_Popobject_Object, data->GUI.LV_MOVETO = ListviewObject,
  655.                          MUIA_Listview_List, ListObject, InputListFrame, End,
  656.                      End,
  657.                    End,
  658.                End,
  659.                Child, MakeCheckGroup((Object **)&data->GUI.CH_ADELETE, GetStr(MSG_CO_ActionDelete)),
  660.                Child, MakeCheckGroup((Object **)&data->GUI.CH_ASKIP, GetStr(MSG_CO_ActionSkip)),
  661.                Child, HVSpace,
  662.             End,
  663.          End,
  664.       End)
  665.    {
  666.       int i, j;
  667.       SetHelp(data->GUI.LV_RULES     ,MSG_HELP_CO_LV_RULES     );
  668.       SetHelp(data->GUI.ST_RNAME     ,MSG_HELP_CO_ST_RNAME     );
  669.       SetHelp(data->GUI.CH_REMOTE    ,MSG_HELP_CO_CH_REMOTE    );
  670.       SetHelp(data->GUI.CH_APPLYNEW  ,MSG_HELP_CO_CH_APPLYNEW  );
  671.       SetHelp(data->GUI.CH_APPLYSENT ,MSG_HELP_CO_CH_APPLYSENT );
  672.       SetHelp(data->GUI.CH_APPLYREQ  ,MSG_HELP_CO_CH_APPLYREQ  );
  673.       SetHelp(data->GUI.CY_COMBINE[0],MSG_HELP_CO_CY_COMBINE   );
  674.       SetHelp(data->GUI.CY_COMBINE[1],MSG_HELP_CO_CY_COMBINE   );
  675.       SetHelp(data->GUI.CH_ABOUNCE   ,MSG_HELP_CO_CH_ABOUNCE   );
  676.       SetHelp(data->GUI.ST_ABOUNCE   ,MSG_HELP_CO_ST_ABOUNCE   );
  677.       SetHelp(data->GUI.CH_AFORWARD  ,MSG_HELP_CO_CH_AFORWARD  );
  678.       SetHelp(data->GUI.ST_AFORWARD  ,MSG_HELP_CO_ST_AFORWARD  );
  679.       SetHelp(data->GUI.CH_ARESPONSE ,MSG_HELP_CO_CH_ARESPONSE );
  680.       SetHelp(data->GUI.ST_ARESPONSE ,MSG_HELP_CO_ST_ARESPONSE );
  681.       SetHelp(data->GUI.CH_AEXECUTE  ,MSG_HELP_CO_CH_AEXECUTE  );
  682.       SetHelp(data->GUI.ST_AEXECUTE  ,MSG_HELP_CO_ST_AEXECUTE  );
  683.       SetHelp(data->GUI.CH_APLAY     ,MSG_HELP_CO_CH_APLAY     );
  684.       SetHelp(data->GUI.ST_APLAY     ,MSG_HELP_CO_ST_APLAY     );
  685.       SetHelp(data->GUI.CH_AMOVE     ,MSG_HELP_CO_CH_AMOVE     );
  686.       SetHelp(data->GUI.PO_MOVETO    ,MSG_HELP_CO_PO_MOVETO    );
  687.       SetHelp(data->GUI.CH_ADELETE   ,MSG_HELP_CO_CH_ADELETE   );
  688.       SetHelp(data->GUI.CH_ASKIP     ,MSG_HELP_CO_CH_ASKIP     );
  689.       SetHelp(data->GUI.BT_RADD      ,MSG_HELP_CO_BT_RADD      );
  690.       SetHelp(data->GUI.BT_RDEL      ,MSG_HELP_CO_BT_RDEL      );
  691.       set(bt_aplay,MUIA_CycleChain,1);
  692.       set(bt_moveto,MUIA_CycleChain,1);
  693.       CO_RuleGhost(&(data->GUI), NULL);
  694.       DoMethod(data->GUI.LV_RULES    ,MUIM_Notify,MUIA_List_Active        ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_GetRUEntryHook);
  695.       DoMethod(data->GUI.ST_RNAME    ,MUIM_Notify,MUIA_String_Contents    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  696.       DoMethod(data->GUI.CH_REMOTE   ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook ,&CO_RemoteToggleHook,MUIV_TriggerValue);
  697.       DoMethod(data->GUI.CH_APPLYREQ ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  698.       DoMethod(data->GUI.CH_APPLYSENT,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  699.       DoMethod(data->GUI.CH_APPLYNEW ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  700.       DoMethod(data->GUI.CY_COMBINE[0],MUIM_Notify,MUIA_Cycle_Active       ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  701.       DoMethod(data->GUI.CY_COMBINE[1],MUIM_Notify,MUIA_Cycle_Active       ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  702.       DoMethod(data->GUI.CH_ABOUNCE  ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  703.       DoMethod(data->GUI.CH_AFORWARD ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  704.       DoMethod(data->GUI.CH_ARESPONSE,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  705.       DoMethod(data->GUI.CH_AEXECUTE ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  706.       DoMethod(data->GUI.CH_APLAY    ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  707.       DoMethod(data->GUI.CH_AMOVE    ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  708.       DoMethod(data->GUI.CH_ADELETE  ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  709.       DoMethod(data->GUI.CH_ASKIP    ,MUIM_Notify,MUIA_Selected           ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  710.       DoMethod(data->GUI.ST_ABOUNCE  ,MUIM_Notify,MUIA_String_Contents    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  711.       DoMethod(data->GUI.ST_AFORWARD ,MUIM_Notify,MUIA_String_Contents    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  712.       DoMethod(data->GUI.ST_ARESPONSE,MUIM_Notify,MUIA_String_Contents    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  713.       DoMethod(data->GUI.ST_AEXECUTE ,MUIM_Notify,MUIA_String_Contents    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  714.       DoMethod(data->GUI.ST_APLAY    ,MUIM_Notify,MUIA_String_Contents    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  715.       DoMethod(bt_aplay              ,MUIM_Notify,MUIA_Pressed            ,FALSE         ,MUIV_Notify_Application,3,MUIM_CallHook, &CO_PlaySoundHook,data->GUI.ST_APLAY);
  716.       DoMethod(data->GUI.TX_MOVETO   ,MUIM_Notify,MUIA_Text_Contents      ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutRUEntryHook);
  717.       DoMethod(data->GUI.LV_MOVETO   ,MUIM_Notify,MUIA_Listview_DoubleClick,TRUE         ,data->GUI.PO_MOVETO   ,2,MUIM_Popstring_Close,TRUE);
  718.       for (j = 0; j < 4; j++)
  719.       {
  720.          struct SearchGroup *sg = &(data->GUI.GR_SEARCH[j]);
  721.          DoMethod(sg->CY_MODE     ,MUIM_Notify,MUIA_Cycle_Active       ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  722.          DoMethod(sg->RA_ADRMODE  ,MUIM_Notify,MUIA_Radio_Active       ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  723.          DoMethod(sg->ST_FIELD    ,MUIM_Notify,MUIA_String_Contents    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  724.          DoMethod(sg->CY_STATUS   ,MUIM_Notify,MUIA_Cycle_Active       ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  725.          for (i = 0; i < 5; i++)
  726.          {
  727.             if (sg->CY_COMP[i])     DoMethod(sg->CY_COMP[i]    ,MUIM_Notify,MUIA_Cycle_Active   ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  728.             if (sg->ST_MATCH[i])    DoMethod(sg->ST_MATCH[i]   ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  729.             if (sg->CH_CASESENS[i]) DoMethod(sg->CH_CASESENS[i],MUIM_Notify,MUIA_Selected       ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  730.             if (sg->CH_SUBSTR[i])   DoMethod(sg->CH_SUBSTR[i]  ,MUIM_Notify,MUIA_Selected       ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook,&CO_PutRUEntryHook);
  731.          }
  732.       }
  733.       DoMethod(data->GUI.BT_RADD      ,MUIM_Notify,MUIA_Pressed ,FALSE         ,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_AddRuleHook);
  734.       DoMethod(data->GUI.BT_RDEL      ,MUIM_Notify,MUIA_Pressed ,FALSE         ,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_DelRuleHook);
  735.       DoMethod(data->GUI.CH_AMOVE     ,MUIM_Notify,MUIA_Selected,TRUE          ,data->GUI.CH_ADELETE  ,3,MUIM_Set, MUIA_Selected,FALSE);
  736.       DoMethod(data->GUI.CH_ADELETE   ,MUIM_Notify,MUIA_Selected,TRUE          ,data->GUI.CH_AMOVE   , 3,MUIM_Set, MUIA_Selected,FALSE);
  737.    }
  738.    return grp;
  739. }
  740. ///
  741. /// CO_Page4  (Read)
  742. APTR CO_Page4(struct CO_ClassData *data)
  743. {
  744.    APTR grp;
  745.    static char *headopt[4], *siopt[4], *slopt[5];
  746.    headopt[0] = GetStr(MSG_CO_HeadNone);
  747.    headopt[1] = GetStr(MSG_CO_HeadShort);
  748.    headopt[2] = GetStr(MSG_CO_HeadFull);
  749.    headopt[3] = NULL;
  750.    siopt[0] = GetStr(MSG_CO_SINone);
  751.    siopt[1] = GetStr(MSG_CO_SIFields);
  752.    siopt[2] = GetStr(MSG_CO_SIAll);
  753.    siopt[3] = NULL;
  754.    slopt[0] = GetStr(MSG_CO_SLBlank);
  755.    slopt[1] = GetStr(MSG_CO_SLDash);
  756.    slopt[2] = GetStr(MSG_CO_SLBar);
  757.    slopt[3] = GetStr(MSG_CO_SLSkip);
  758.    slopt[4] = NULL;
  759.    if (grp = VGroup,
  760.          MUIA_HelpNode, "CO04",
  761.          Child, ColGroup(3), GroupFrameT(GetStr(MSG_CO_HeaderLayout)),
  762.             Child, Label2(GetStr(MSG_CO_Header)),
  763.             Child, data->GUI.CY_HEADER = MakeCycle(headopt,GetStr(MSG_CO_Header)),
  764.             Child, data->GUI.ST_HEADERS = MakeString(SIZE_PATTERN, ""),
  765.             Child, Label1(GetStr(MSG_CO_SenderInfo)),
  766.             Child, data->GUI.CY_SENDERINFO = MakeCycle(siopt,GetStr(MSG_CO_SenderInfo)),
  767.             Child, MakeCheckGroup((Object **)&data->GUI.CH_WRAPHEAD, GetStr(MSG_CO_WrapHeader)),
  768.          End,
  769.          Child, ColGroup(3), GroupFrameT(GetStr(MSG_CO_BodyLayout)),
  770.             Child, Label1(GetStr(MSG_CO_SignatureSep)),
  771.             Child, data->GUI.CY_SIGSEPLINE = MakeCycle(slopt,GetStr(MSG_CO_SignatureSep)),
  772.             Child, MakeCheckGroup((Object **)&data->GUI.CH_FIXFEDIT, GetStr(MSG_CO_FixedFontEdit)),
  773.             Child, Label1(GetStr(MSG_CO_ColoredText)),
  774.             Child, data->GUI.CA_COLTEXT = PoppenObject, MUIA_CycleChain, 1, End,
  775.             Child, MakeCheckGroup((Object **)&data->GUI.CH_ALLTEXTS, GetStr(MSG_CO_DisplayAll)),
  776.             Child, Label1(GetStr(MSG_CO_OldQuotes)),
  777.             Child, data->GUI.CA_COL2QUOT = PoppenObject, MUIA_CycleChain, 1, End,
  778.             Child, MakeCheckGroup((Object **)&data->GUI.CH_TEXTSTYLES, GetStr(MSG_CO_UseTextstyles)),
  779.          End,
  780.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_OtherOptions)),
  781.             Child, HGroup,
  782.                Child, Label2(GetStr(MSG_CO_CharsetTrans)),
  783.                Child, MakeTransPop(&data->GUI.ST_INTRANS, FALSE, GetStr(MSG_CO_CharsetTrans)),
  784.             End,
  785.             Child, MakeCheckGroup((Object **)&data->GUI.CH_MULTIWIN, GetStr(MSG_CO_MultiReadWin)),
  786.          End,
  787.          Child, HVSpace,
  788.       End)
  789.    {
  790.       set(data->GUI.ST_HEADERS, MUIA_Disabled, TRUE);
  791.       SetHelp(data->GUI.CY_HEADER    ,MSG_HELP_CO_CY_HEADER    );
  792.       SetHelp(data->GUI.ST_HEADERS   ,MSG_HELP_CO_ST_HEADERS   );
  793.       SetHelp(data->GUI.CY_SENDERINFO,MSG_HELP_CO_CY_SENDERINFO);
  794.       SetHelp(data->GUI.ST_INTRANS   ,MSG_HELP_CO_ST_INTRANS   );
  795.       SetHelp(data->GUI.CA_COLTEXT   ,MSG_HELP_CO_CA_COLTEXT   );
  796.       SetHelp(data->GUI.CA_COL2QUOT  ,MSG_HELP_CO_CA_COL2QUOT  );
  797.       SetHelp(data->GUI.CH_ALLTEXTS  ,MSG_HELP_CO_CH_ALLTEXTS  );
  798.       SetHelp(data->GUI.CH_MULTIWIN  ,MSG_HELP_CO_CH_MULTIWIN  );
  799.       SetHelp(data->GUI.CY_SIGSEPLINE,MSG_HELP_CO_CY_SIGSEPLINE);
  800.       SetHelp(data->GUI.CH_FIXFEDIT  ,MSG_HELP_CO_CH_FIXFEDIT  );
  801.       SetHelp(data->GUI.CH_WRAPHEAD  ,MSG_HELP_CO_CH_WRAPHEAD  );
  802.       SetHelp(data->GUI.CH_TEXTSTYLES,MSG_HELP_CO_CH_TEXTSTYLES);
  803.       DoMethod(data->GUI.CY_HEADER   ,MUIM_Notify,MUIA_Cycle_Active   ,0             ,data->GUI.ST_HEADERS   ,3,MUIM_Set,MUIA_Disabled,TRUE);
  804.       DoMethod(data->GUI.CY_HEADER   ,MUIM_Notify,MUIA_Cycle_Active   ,1             ,data->GUI.ST_HEADERS   ,3,MUIM_Set,MUIA_Disabled,FALSE);
  805.       DoMethod(data->GUI.CY_HEADER   ,MUIM_Notify,MUIA_Cycle_Active   ,2             ,data->GUI.ST_HEADERS   ,3,MUIM_Set,MUIA_Disabled,TRUE);
  806.    }
  807.    return grp;
  808. }
  809. ///
  810. /// CO_Page5  (Write)
  811. APTR CO_Page5(struct CO_ClassData *data)
  812. {
  813.    APTR grp;
  814.    static char *wrapmode[4];
  815.    wrapmode[0] = GetStr(MSG_CO_EWOff);
  816.    wrapmode[1] = GetStr(MSG_CO_EWAsYouType);
  817.    wrapmode[2] = GetStr(MSG_CO_EWBeforeSend);
  818.    wrapmode[3] = NULL;
  819.    if (grp = VGroup,
  820.          MUIA_HelpNode, "CO05",
  821.          Child, HVSpace,
  822.          Child, ColGroup(2), GroupFrameT(GetStr(MSG_CO_MessageHeader)),
  823.             Child, Label2(GetStr(MSG_CO_ReplyTo)),
  824.             Child, data->GUI.ST_REPLYTO  = MakeString(SIZE_ADDRESS,GetStr(MSG_CO_ReplyTo)),
  825.             Child, Label2(GetStr(MSG_CO_Organization)),
  826.             Child, data->GUI.ST_ORGAN = MakeString(SIZE_DEFAULT,GetStr(MSG_CO_Organization)),
  827.             Child, Label2(GetStr(MSG_CO_ExtraHeaders)),
  828.             Child, data->GUI.ST_EXTHEADER = MakeString(SIZE_LARGE,GetStr(MSG_CO_ExtraHeaders)),
  829.          End,
  830.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_MessageBody)),
  831.             Child, ColGroup(2),
  832.                Child, Label2(GetStr(MSG_CO_Welcome)),
  833.                Child, data->GUI.ST_HELLOTEXT = MakeString(SIZE_INTRO,GetStr(MSG_CO_Welcome)),
  834.                Child, Label2(GetStr(MSG_CO_Greetings)),
  835.                Child, data->GUI.ST_BYETEXT = MakeString(SIZE_INTRO,GetStr(MSG_CO_Greetings)),
  836.                Child, Label2(GetStr(MSG_CO_CharsetTrans)),
  837.                Child, MakeTransPop(&data->GUI.ST_OUTTRANS, TRUE, GetStr(MSG_CO_CharsetTrans)),
  838.             End,
  839.          End,
  840.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_Editor)),
  841.             Child, ColGroup(3),
  842.                Child, Label2(GetStr(MSG_CO_WordWrap)),
  843.                Child, data->GUI.ST_EDWRAP = MakeInteger(4, GetStr(MSG_CO_WordWrap)),
  844.                Child, data->GUI.CY_EDWRAP = MakeCycle(wrapmode, ""),
  845.                Child, Label2(GetStr(MSG_CO_ExternalEditor)),
  846.                Child, PopaslObject,
  847.                   MUIA_Popasl_Type     ,ASL_FileRequest,
  848.                   MUIA_Popstring_String,data->GUI.ST_EDITOR = MakeString(SIZE_PATHFILE,GetStr(MSG_CO_ExternalEditor)),
  849.                   MUIA_Popstring_Button,PopButton(MUII_PopFile),
  850.                End,
  851.                Child, MakeCheckGroup((Object **)&data->GUI.CH_LAUNCH, GetStr(MSG_CO_Launch)),
  852.             End,
  853.          End,
  854.          Child, HVSpace,
  855.       End)
  856.    {
  857.       SetHelp(data->GUI.ST_REPLYTO   ,MSG_HELP_CO_ST_REPLYTO  );
  858.       SetHelp(data->GUI.ST_ORGAN     ,MSG_HELP_CO_ST_ORGAN    );
  859.       SetHelp(data->GUI.ST_EXTHEADER ,MSG_HELP_CO_ST_EXTHEADER);
  860.       SetHelp(data->GUI.ST_HELLOTEXT ,MSG_HELP_CO_ST_HELLOTEXT);
  861.       SetHelp(data->GUI.ST_BYETEXT   ,MSG_HELP_CO_ST_BYETEXT  );
  862.       SetHelp(data->GUI.ST_OUTTRANS  ,MSG_HELP_CO_ST_OUTTRANS );
  863.       SetHelp(data->GUI.ST_EDWRAP    ,MSG_HELP_CO_ST_EDWRAP   );
  864.       SetHelp(data->GUI.CY_EDWRAP    ,MSG_HELP_CO_CY_EDWRAP   );
  865.       SetHelp(data->GUI.ST_EDITOR    ,MSG_HELP_CO_ST_EDITOR   );
  866.       SetHelp(data->GUI.CH_LAUNCH    ,MSG_HELP_CO_CH_LAUNCH   );
  867.    }
  868.    return grp;
  869. }
  870. ///
  871. /// CO_Page6  (Reply/Forward)
  872. APTR CO_Page6(struct CO_ClassData *data)
  873. {
  874.    APTR grp;
  875.    if (grp = VGroup,
  876.          MUIA_HelpNode, "CO06",
  877.          Child, HVSpace,
  878.          Child, ColGroup(2), GroupFrameT(GetStr(MSG_CO_Forwarding)),
  879.             Child, Label2(GetStr(MSG_CO_FwdInit)),
  880.             Child, MakeVarPop(&data->GUI.ST_FWDSTART, 0, SIZE_INTRO, GetStr(MSG_CO_FwdInit)),
  881.             Child, Label2(GetStr(MSG_CO_FwdFinish)),
  882.             Child, MakeVarPop(&data->GUI.ST_FWDEND, 0, SIZE_INTRO, GetStr(MSG_CO_FwdFinish)),
  883.          End,
  884.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_Replying)),
  885.             Child, ColGroup(2),
  886.                Child, Label2(GetStr(MSG_CO_RepInit)),
  887.                Child, MakePhraseGroup(&data->GUI.ST_REPLYHI, &data->GUI.ST_REPLYTEXT, &data->GUI.ST_REPLYBYE, GetStr(MSG_CO_RepInit), GetStr(MSG_HELP_CO_ST_REPLYTEXT)),
  888.                Child, Label2(GetStr(MSG_CO_AltRepInit)),
  889.                Child, MakePhraseGroup(&data->GUI.ST_AREPLYHI, &data->GUI.ST_AREPLYTEXT, &data->GUI.ST_AREPLYBYE, GetStr(MSG_CO_AltRepInit), GetStr(MSG_HELP_CO_ST_AREPLYTEXT)),
  890.                Child, Label2(GetStr(MSG_CO_AltRepPat)),
  891.                Child, data->GUI.ST_AREPLYPAT = MakeString(SIZE_PATTERN, GetStr(MSG_CO_AltRepPat)),
  892.                Child, Label2(GetStr(MSG_CO_MLRepInit)),
  893.                Child, MakePhraseGroup(&data->GUI.ST_MREPLYHI, &data->GUI.ST_MREPLYTEXT, &data->GUI.ST_MREPLYBYE, GetStr(MSG_CO_MLRepInit), GetStr(MSG_HELP_CO_ST_MREPLYTEXT)),
  894.             End,
  895.             Child, HGroup,
  896.                Child, data->GUI.CH_QUOTE = MakeCheck(GetStr(MSG_CO_QuoteMail)),
  897.                Child, Label2(GetStr(MSG_CO_QuoteMail)),
  898.                Child, MakeVarPop(&data->GUI.ST_REPLYCHAR, 2, SIZE_SMALL, ""),
  899.             End,
  900.             Child, ColGroup(2),
  901.                Child, MakeCheckGroup((Object **)&data->GUI.CH_QUOTEEMPTY, GetStr(MSG_CO_QuoteEmpty)),
  902.                Child, MakeCheckGroup((Object **)&data->GUI.CH_COMPADDR, GetStr(MSG_CO_VerifyAddress)),
  903.                Child, MakeCheckGroup((Object **)&data->GUI.CH_STRIPSIG, GetStr(MSG_CO_StripSignature)),
  904.                Child, HVSpace,
  905.             End,
  906.          End,
  907.          Child, HVSpace,
  908.       End)
  909.    {
  910.       SetHelp(data->GUI.ST_FWDSTART  ,MSG_HELP_CO_ST_FWDSTART  );
  911.       SetHelp(data->GUI.ST_FWDEND    ,MSG_HELP_CO_ST_FWDEND    );
  912.       SetHelp(data->GUI.ST_AREPLYPAT ,MSG_HELP_CO_ST_AREPLYPAT );
  913.       SetHelp(data->GUI.CH_QUOTE     ,MSG_HELP_CO_CH_QUOTE     );
  914.       SetHelp(data->GUI.ST_REPLYCHAR ,MSG_HELP_CO_ST_REPLYCHAR );
  915.       SetHelp(data->GUI.CH_QUOTEEMPTY,MSG_HELP_CO_CH_QUOTEEMPTY);
  916.       SetHelp(data->GUI.CH_COMPADDR  ,MSG_HELP_CO_CH_COMPADDR  );
  917.       SetHelp(data->GUI.CH_STRIPSIG  ,MSG_HELP_CO_CH_STRIPSIG  );
  918.       DoMethod(data->GUI.CH_QUOTE    ,MUIM_Notify,MUIA_Selected,MUIV_EveryTime,data->GUI.ST_REPLYCHAR,3,MUIM_Set,MUIA_Disabled,MUIV_NotTriggerValue);
  919.    }
  920.    return grp;
  921. }
  922. ///
  923. /// CO_Page7  (Signature)
  924. APTR CO_Page7(struct CO_ClassData *data)
  925. {
  926.    static char *signat[4];
  927.    APTR grp, slider = ScrollbarObject, End;
  928.    signat[0] = GetStr(MSG_CO_DefSig);
  929.    signat[1] = GetStr(MSG_CO_AltSig1);
  930.    signat[2] = GetStr(MSG_CO_AltSig2);
  931.    signat[3] = NULL;
  932.    if (grp = VGroup,
  933.          MUIA_HelpNode, "CO07",
  934.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_Signature)),
  935.             Child, MakeCheckGroup((Object **)&data->GUI.CH_USESIG, GetStr(MSG_CO_UseSig)),
  936.             Child, HGroup,
  937.                Child, data->GUI.CY_SIGNAT = MakeCycle(signat,""),
  938.                Child, data->GUI.BT_SIGEDIT = MakeButton(GetStr(MSG_CO_EditSig)),
  939.             End,
  940.             Child, HGroup,
  941.                MUIA_Group_Spacing, 0,
  942.                Child, data->GUI.TE_SIGEDIT = NewObject(CL_TextEditor->mcc_Class, NULL,
  943.                   InputListFrame,
  944.                   MUIA_TextEditor_ExportHook, MUIV_TextEditor_ExportHook_EMail,
  945.                   MUIA_CycleChain, TRUE,
  946.                   MUIA_TextEditor_Slider, slider,
  947.                End,
  948.                Child, slider,
  949.             End,
  950.             Child, ColGroup(2),
  951.                Child, data->GUI.BT_INSTAG = MakeButton(GetStr(MSG_CO_InsertTag)),
  952.                Child, data->GUI.BT_INSENV = MakeButton(GetStr(MSG_CO_InsertENV)),
  953.             End,
  954.          End,
  955.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_Taglines)),
  956.             Child, ColGroup(2),
  957.                Child, Label2(GetStr(MSG_CO_TaglineFile)),
  958.                Child, PopaslObject,
  959.                   MUIA_Popasl_Type     ,ASL_FileRequest,
  960.                   MUIA_Popstring_String,data->GUI.ST_TAGFILE = MakeString(SIZE_PATHFILE,GetStr(MSG_CO_TaglineFile)),
  961.                   MUIA_Popstring_Button,PopButton(MUII_PopFile),
  962.                End,
  963.                Child, Label2(GetStr(MSG_CO_TaglineSep)),
  964.                Child, data->GUI.ST_TAGSEP = MakeString(SIZE_SMALL,GetStr(MSG_CO_TaglineSep)),
  965.             End,
  966.          End,
  967.      End)
  968.    {
  969.       SetHelp(data->GUI.CY_SIGNAT    ,MSG_HELP_CO_CY_SIGNAT   );
  970.       SetHelp(data->GUI.BT_SIGEDIT   ,MSG_HELP_CO_BT_EDITSIG  );
  971.       SetHelp(data->GUI.BT_INSTAG    ,MSG_HELP_CO_BT_INSTAG   );
  972.       SetHelp(data->GUI.BT_INSENV    ,MSG_HELP_CO_BT_INSENV   );
  973.       SetHelp(data->GUI.ST_TAGFILE   ,MSG_HELP_CO_ST_TAGFILE  );
  974.       SetHelp(data->GUI.ST_TAGSEP    ,MSG_HELP_CO_ST_TAGSEP   );
  975.       DoMethod(data->GUI.BT_INSTAG   ,MUIM_Notify,MUIA_Pressed     ,FALSE         ,data->GUI.TE_SIGEDIT   ,2,MUIM_TextEditor_InsertText,"%t\n");
  976.       DoMethod(data->GUI.BT_INSENV   ,MUIM_Notify,MUIA_Pressed     ,FALSE         ,data->GUI.TE_SIGEDIT   ,2,MUIM_TextEditor_InsertText,"%e");
  977.       DoMethod(data->GUI.CY_SIGNAT   ,MUIM_Notify,MUIA_Cycle_Active,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook,&CO_EditSignatHook,FALSE);
  978.       DoMethod(data->GUI.BT_SIGEDIT  ,MUIM_Notify,MUIA_Pressed     ,FALSE         ,MUIV_Notify_Application,3,MUIM_CallHook,&CO_EditSignatHook,TRUE);
  979.    }
  980.    return grp;
  981. }
  982. ///
  983. /// CO_Page8  (Lists)
  984. APTR CO_Page8(struct CO_ClassData *data)
  985. {
  986.    APTR grp;
  987.    if (grp = VGroup,
  988.          MUIA_HelpNode, "CO08",
  989.          Child, HGroup,
  990.             Child, ColGroup(2), GroupFrameT(GetStr(MSG_FolderList)),
  991.                MUIA_ShortHelp, GetStr(MSG_HELP_CO_CG_FO),
  992.                Child, MakeStaticCheck(),
  993.                Child, LLabel(GetStr(MSG_Folder)),
  994.                Child, data->GUI.CH_FCOLS[1] = MakeCheck(""),
  995.                Child, LLabel(GetStr(MSG_Total)),
  996.                Child, data->GUI.CH_FCOLS[2] = MakeCheck(""),
  997.                Child, LLabel(GetStr(MSG_Unread)),
  998.                Child, data->GUI.CH_FCOLS[3] = MakeCheck(""),
  999.                Child, LLabel(GetStr(MSG_New)),
  1000.                Child, data->GUI.CH_FCOLS[4] = MakeCheck(""),
  1001.                Child, LLabel(GetStr(MSG_Size)),
  1002.             End,
  1003.             Child, HSpace(0),
  1004.             Child, ColGroup(2), GroupFrameT(GetStr(MSG_MessageList)),
  1005.                MUIA_ShortHelp, GetStr(MSG_HELP_CO_CG_MA),
  1006.                Child, MakeStaticCheck(),
  1007.                Child, LLabel(GetStr(MSG_Status)),
  1008.                Child, data->GUI.CH_MCOLS[1] = MakeCheck(""),
  1009.                Child, LLabel(GetStr(MSG_SenderRecpt)),
  1010.                Child, data->GUI.CH_MCOLS[2] = MakeCheck(""),
  1011.                Child, LLabel(GetStr(MSG_ReturnAddress)),
  1012.                Child, data->GUI.CH_MCOLS[3] = MakeCheck(""),
  1013.                Child, LLabel(GetStr(MSG_Subject)),
  1014.                Child, data->GUI.CH_MCOLS[4] = MakeCheck(""),
  1015.                Child, LLabel(GetStr(MSG_MessageDate)),
  1016.                Child, data->GUI.CH_MCOLS[5] = MakeCheck(""),
  1017.                Child, LLabel(GetStr(MSG_Size)),
  1018.                Child, data->GUI.CH_MCOLS[6] = MakeCheck(""),
  1019.                Child, LLabel(GetStr(MSG_Filename)),
  1020.             End,
  1021.          End,
  1022.          Child, MakeCheckGroup((Object **)&data->GUI.CH_FIXFLIST, GetStr(MSG_CO_FixedFontList)),
  1023.          Child, MakeCheckGroup((Object **)&data->GUI.CH_BEAT, GetStr(MSG_CO_SwatchBeat)),
  1024.          Child, HVSpace,
  1025.       End)
  1026.    {
  1027.       SetHelp(data->GUI.CH_FIXFLIST,MSG_HELP_CO_CH_FIXFLIST);
  1028.       SetHelp(data->GUI.CH_BEAT    ,MSG_HELP_CO_CH_BEAT);
  1029.    }
  1030.    return grp;
  1031. }
  1032. ///
  1033. /// CO_Page9  (Security)
  1034. APTR CO_Page9(struct CO_ClassData *data)
  1035. {
  1036.    APTR grp;
  1037.    static char *logfmode[4];
  1038.    logfmode[0] = GetStr(MSG_CO_LogNone);
  1039.    logfmode[1] = GetStr(MSG_CO_LogNormal);
  1040.    logfmode[2] = GetStr(MSG_CO_LogVerbose);
  1041.    logfmode[3] = NULL;
  1042.    if (grp = VGroup,
  1043.          MUIA_HelpNode, "CO09",
  1044.          Child, HVSpace,
  1045.          Child, ColGroup(2), GroupFrameT("PGP"),
  1046.             Child, Label2(GetStr(MSG_CO_PGPExe)),
  1047.             Child, PopaslObject,
  1048.                MUIA_Popasl_Type     ,ASL_FileRequest,
  1049.                MUIA_Popstring_String,data->GUI.ST_PGPCMD= MakeString(SIZE_PATHFILE,GetStr(MSG_CO_PGPExe)),
  1050.                MUIA_Popstring_Button,PopButton(MUII_PopDrawer),
  1051.                ASLFR_DrawersOnly, TRUE,
  1052.             End,
  1053.             Child, Label2(GetStr(MSG_CO_PGPKey)),
  1054.             Child, HGroup,
  1055.                Child, MakePGPKeyList(&(data->GUI.ST_MYPGPID), TRUE, GetStr(MSG_CO_PGPKey)),
  1056.                Child, HSpace(8),
  1057.                Child, data->GUI.CH_ENCSELF = MakeCheck(GetStr(MSG_CO_EncryptToSelf)),
  1058.                Child, Label1(GetStr(MSG_CO_EncryptToSelf)),
  1059.             End,
  1060.          End,
  1061.          Child, ColGroup(2), GroupFrameT(GetStr(MSG_CO_AnonMail)),
  1062.             Child, Label2(GetStr(MSG_CO_ReMailer)),
  1063.             Child, data->GUI.ST_REMAILER = MakeString(SIZE_ADDRESS,GetStr(MSG_CO_ReMailer)),
  1064.             Child, Label2(GetStr(MSG_CO_ReMailerLine)),
  1065.             Child, data->GUI.ST_FIRSTLINE = MakeString(SIZE_INTRO,GetStr(MSG_CO_ReMailerLine)),
  1066.          End,
  1067.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_Logfiles)),
  1068.             Child, HGroup,
  1069.                Child, Label2(GetStr(MSG_CO_LogPath)),
  1070.                Child, PopaslObject,
  1071.                   MUIA_Popasl_Type     ,ASL_FileRequest,
  1072.                   MUIA_Popstring_String,data->GUI.ST_LOGFILE = MakeString(SIZE_PATH,GetStr(MSG_CO_LogPath)),
  1073.                   MUIA_Popstring_Button,PopButton(MUII_PopDrawer),
  1074.                   ASLFR_DrawersOnly, TRUE,
  1075.                End,
  1076.             End,
  1077.             Child, ColGroup(5),
  1078.                Child, data->GUI.CH_SPLITLOG = MakeCheck(GetStr(MSG_CO_LogSplit)),
  1079.                Child, LLabel1(GetStr(MSG_CO_LogSplit)),
  1080.                Child, HSpace(0),
  1081.                Child, Label1(GetStr(MSG_CO_LogMode)),
  1082.                Child, data->GUI.CY_LOGMODE = MakeCycle(logfmode,GetStr(MSG_CO_LogMode)),
  1083.                Child, data->GUI.CH_LOGALL = MakeCheck(GetStr(MSG_CO_LogAllEvents)),
  1084.                Child, LLabel1(GetStr(MSG_CO_LogAllEvents)),
  1085.                Child, HSpace(0),
  1086.                Child, HSpace(0),
  1087.                Child, HSpace(0),
  1088.             End,
  1089.          End,
  1090.          Child, HVSpace,
  1091.       End)
  1092.    {
  1093.       SetHelp(data->GUI.ST_PGPCMD    ,MSG_HELP_CO_ST_PGPCMD   );
  1094.       SetHelp(data->GUI.ST_MYPGPID   ,MSG_HELP_CO_ST_MYPGPID  );
  1095.       SetHelp(data->GUI.CH_ENCSELF   ,MSG_HELP_CO_CH_ENCSELF  );
  1096.       SetHelp(data->GUI.ST_REMAILER  ,MSG_HELP_CO_ST_REMAILER );
  1097.       SetHelp(data->GUI.ST_FIRSTLINE ,MSG_HELP_CO_ST_FIRSTLINE);
  1098.       SetHelp(data->GUI.ST_LOGFILE   ,MSG_HELP_CO_ST_LOGFILE  );
  1099.       SetHelp(data->GUI.CH_SPLITLOG  ,MSG_HELP_CO_CH_SPLITLOG );
  1100.       SetHelp(data->GUI.CY_LOGMODE   ,MSG_HELP_CO_CY_LOGMODE  );
  1101.       SetHelp(data->GUI.CH_LOGALL    ,MSG_HELP_CO_CH_LOGALL   );
  1102.    }
  1103.    return grp;
  1104. }
  1105. ///
  1106. /// CO_Page10 (Start/Quit)
  1107. APTR CO_Page10(struct CO_ClassData *data)
  1108. {
  1109.    APTR grp;
  1110.    if (grp = VGroup,
  1111.          MUIA_HelpNode, "CO10",
  1112.          Child, HVSpace,
  1113.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_OnStartup)),
  1114.             Child, MakeCheckGroup((Object **)&data->GUI.CH_LOADALL, GetStr(MSG_CO_LoadAll)),
  1115.             Child, MakeCheckGroup((Object **)&data->GUI.CH_MARKNEW, GetStr(MSG_CO_MarkNew)),
  1116.             Child, MakeCheckGroup((Object **)&data->GUI.CH_DELETESTART, GetStr(MSG_CO_DeleteOld)),
  1117.             Child, MakeCheckGroup((Object **)&data->GUI.CH_REMOVESTART, GetStr(MSG_CO_RemoveDel)),
  1118.             Child, MakeCheckGroup((Object **)&data->GUI.CH_CHECKBD, GetStr(MSG_CO_CheckDOB)),
  1119.             Child, MakeCheckGroup((Object **)&data->GUI.CH_SENDSTART, GetStr(MSG_CO_SendStart)),
  1120.             Child, MakeCheckGroup((Object **)&data->GUI.CH_POPSTART, GetStr(MSG_CO_PopStart)),
  1121.          End,
  1122.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_OnTermination)),
  1123.             Child, MakeCheckGroup((Object **)&data->GUI.CH_SENDQUIT, GetStr(MSG_CO_SendStart)),
  1124.             Child, MakeCheckGroup((Object **)&data->GUI.CH_DELETEQUIT, GetStr(MSG_CO_DeleteOld)),
  1125.             Child, MakeCheckGroup((Object **)&data->GUI.CH_REMOVEQUIT, GetStr(MSG_CO_RemoveDel)),
  1126.          End,
  1127.          Child, HVSpace,
  1128.       End)
  1129.    {
  1130.       SetHelp(data->GUI.CH_LOADALL    ,MSG_HELP_CO_CH_LOADALL   );
  1131.       SetHelp(data->GUI.CH_MARKNEW    ,MSG_HELP_CO_CH_MARKNEW   );
  1132.       SetHelp(data->GUI.CH_DELETESTART,MSG_HELP_CO_CH_DELETEOLD );
  1133.       SetHelp(data->GUI.CH_REMOVESTART,MSG_HELP_CO_CH_REMOVEDEL );
  1134.       SetHelp(data->GUI.CH_SENDSTART  ,MSG_HELP_CO_CH_SEND      );
  1135.       SetHelp(data->GUI.CH_POPSTART   ,MSG_HELP_CO_CH_POPSTART  );
  1136.       SetHelp(data->GUI.CH_CHECKBD    ,MSG_HELP_CO_CH_CHECKBD   );
  1137.       SetHelp(data->GUI.CH_SENDQUIT   ,MSG_HELP_CO_CH_SEND      );
  1138.       SetHelp(data->GUI.CH_DELETEQUIT ,MSG_HELP_CO_CH_DELETEOLD );
  1139.       SetHelp(data->GUI.CH_REMOVEQUIT ,MSG_HELP_CO_CH_REMOVEDEL );
  1140.    }
  1141.    return grp;
  1142. }
  1143. ///
  1144. /// CO_Page11 (MIME)
  1145. APTR CO_Page11(struct CO_ClassData *data)
  1146. {
  1147.    APTR grp;
  1148.    if (grp = VGroup,
  1149.          MUIA_HelpNode, "CO11",
  1150.          Child, VGroup, GroupFrameT(GetStr(MSG_CO_MimeViewers)),
  1151.             Child, HGroup,
  1152.                Child, ListviewObject,
  1153.                   MUIA_Weight, 60,
  1154.                   MUIA_CycleChain, 1,
  1155.                   MUIA_Listview_List, data->GUI.LV_MIME = ListObject, InputListFrame, End,
  1156.                End,
  1157.                Child, VGroup,
  1158.                   Child, data->GUI.GR_MIME = ColGroup(2),
  1159.                      Child, Label2(GetStr(MSG_CO_MimeType)),
  1160.                      Child, PoplistObject,
  1161.                         MUIA_Popstring_String, data->GUI.ST_CTYPE = MakeString(SIZE_CTYPE,GetStr(MSG_CO_MimeType)),
  1162.                         MUIA_Popstring_Button, PopButton(MUII_PopUp),
  1163.                         MUIA_Poplist_Array   , ContType,
  1164.                      End,
  1165.                      Child, Label2(GetStr(MSG_CO_Extension)),
  1166.                      Child, data->GUI.ST_EXTENS = MakeString(SIZE_NAME,GetStr(MSG_CO_Extension)),
  1167.                      Child, Label2(GetStr(MSG_CO_MimeCmd)),
  1168.                      Child, PopaslObject,
  1169.                         MUIA_Popstring_String, data->GUI.ST_COMMAND = MakeString(SIZE_COMMAND,GetStr(MSG_CO_MimeCmd)),
  1170.                         MUIA_Popstring_Button, PopButton(MUII_PopFile),
  1171.                      End,
  1172.                   End,
  1173.                   Child, VSpace(0),
  1174.                   Child, ColGroup(2),
  1175.                      Child, data->GUI.BT_MADD = MakeButton(GetStr(MSG_Add)),
  1176.                      Child, data->GUI.BT_MDEL = MakeButton(GetStr(MSG_Del)),
  1177.                   End,
  1178.                End,
  1179.             End,
  1180.             Child, HGroup,
  1181.                Child, Label2(GetStr(MSG_CO_DefaultViewer)),
  1182.                Child, PopaslObject,
  1183.                   MUIA_Popstring_String, data->GUI.ST_DEFVIEWER = MakeString(SIZE_COMMAND,GetStr(MSG_CO_DefaultViewer)),
  1184.                   MUIA_Popstring_Button, PopButton(MUII_PopFile),
  1185.                End,
  1186.             End,
  1187.             Child, MakeCheckGroup((Object **)&data->GUI.CH_IDENTBIN, GetStr(MSG_CO_IdentifyBin)),
  1188.          End,
  1189.          Child, ColGroup(2), GroupFrameT(GetStr(MSG_CO_Paths)),
  1190.             Child, Label2(GetStr(MSG_CO_Detach)),
  1191.             Child, PopaslObject,
  1192.                MUIA_Popasl_Type     ,ASL_FileRequest,
  1193.                MUIA_Popstring_String,data->GUI.ST_DETACHDIR = MakeString(SIZE_PATH,GetStr(MSG_CO_Detach)),
  1194.                MUIA_Popstring_Button,PopButton(MUII_PopDrawer),
  1195.                ASLFR_DrawersOnly, TRUE,
  1196.             End,
  1197.             Child, Label2(GetStr(MSG_CO_Attach)),
  1198.             Child, PopaslObject,
  1199.                MUIA_Popasl_Type     ,ASL_FileRequest,
  1200.                MUIA_Popstring_String,data->GUI.ST_ATTACHDIR = MakeString(SIZE_PATH,GetStr(MSG_CO_Attach)),
  1201.                MUIA_Popstring_Button,PopButton(MUII_PopDrawer),
  1202.                ASLFR_DrawersOnly, TRUE,
  1203.             End,
  1204.          End,
  1205.       End)
  1206.    {
  1207.       SetHelp(data->GUI.ST_CTYPE     ,MSG_HELP_CO_ST_CTYPE     );
  1208.       SetHelp(data->GUI.ST_EXTENS    ,MSG_HELP_CO_ST_EXTENS    );
  1209.       SetHelp(data->GUI.ST_COMMAND   ,MSG_HELP_CO_ST_COMMAND   );
  1210.       SetHelp(data->GUI.BT_MADD      ,MSG_HELP_CO_BT_MADD      );
  1211.       SetHelp(data->GUI.BT_MDEL      ,MSG_HELP_CO_BT_MDEL      );
  1212.       SetHelp(data->GUI.ST_DEFVIEWER ,MSG_HELP_CO_ST_DEFVIEWER );
  1213.       SetHelp(data->GUI.CH_IDENTBIN  ,MSG_HELP_CO_CH_IDENTBIN  );
  1214.       SetHelp(data->GUI.ST_DETACHDIR ,MSG_HELP_CO_ST_DETACHDIR );
  1215.       SetHelp(data->GUI.ST_ATTACHDIR ,MSG_HELP_CO_ST_ATTACHDIR );
  1216.       DoMethod(grp,MUIM_MultiSet,MUIA_Disabled,TRUE,data->GUI.GR_MIME,data->GUI.BT_MDEL,NULL);
  1217.       DoMethod(data->GUI.LV_MIME     ,MUIM_Notify,MUIA_List_Active    ,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_GetMVEntryHook);
  1218.       DoMethod(data->GUI.ST_CTYPE    ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutMVEntryHook);
  1219.       DoMethod(data->GUI.ST_EXTENS   ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutMVEntryHook);
  1220.       DoMethod(data->GUI.ST_COMMAND  ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutMVEntryHook);
  1221.       DoMethod(data->GUI.ST_DEFVIEWER,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_PutMVEntryHook);
  1222.       DoMethod(data->GUI.BT_MADD     ,MUIM_Notify,MUIA_Pressed        ,FALSE         ,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_AddMimeViewHook);
  1223.       DoMethod(data->GUI.BT_MDEL     ,MUIM_Notify,MUIA_Pressed        ,FALSE         ,MUIV_Notify_Application,2,MUIM_CallHook ,&CO_DelMimeViewHook);
  1224.    }
  1225.    return grp;
  1226. }
  1227. ///
  1228. /// CO_Page12 (Address book)
  1229. APTR CO_Page12(struct CO_ClassData *data)
  1230. {
  1231.    APTR grp;
  1232.    static char *atab[6];
  1233.    atab[0] = GetStr(MSG_CO_ATABnever);
  1234.    atab[1] = GetStr(MSG_CO_ATABinfoask);
  1235.    atab[2] = GetStr(MSG_CO_ATABask);
  1236.    atab[3] = GetStr(MSG_CO_ATABinfo);
  1237.    atab[4] = GetStr(MSG_CO_ATABalways);
  1238.    atab[5] = NULL;
  1239.    if (grp = VGroup,
  1240.          MUIA_HelpNode, "CO12",
  1241.          Child, HGroup, GroupFrameT(GetStr(MSG_Columns)),
  1242.             Child, HVSpace,
  1243.             Child, ColGroup(4),
  1244.                MUIA_ShortHelp, GetStr(MSG_HELP_CO_CG_AB),
  1245.                Child, data->GUI.CH_ACOLS[1] = MakeCheck(""),
  1246.                Child, LLabel(GetStr(MSG_Realname)),
  1247.                Child, data->GUI.CH_ACOLS[2] = MakeCheck(""),
  1248.                Child, LLabel(GetStr(MSG_Description)),
  1249.                Child, data->GUI.CH_ACOLS[3] = MakeCheck(""),
  1250.                Child, LLabel(GetStr(MSG_Email)),
  1251.                Child, data->GUI.CH_ACOLS[4] = MakeCheck(""),
  1252.                Child, LLabel(GetStr(MSG_Street)),
  1253.                Child, data->GUI.CH_ACOLS[5] = MakeCheck(""),
  1254.                Child, LLabel(GetStr(MSG_City)),
  1255.                Child, data->GUI.CH_ACOLS[6] = MakeCheck(""),
  1256.                Child, LLabel(GetStr(MSG_Country)),
  1257.                Child, data->GUI.CH_ACOLS[7] = MakeCheck(""),
  1258.                Child, LLabel(GetStr(MSG_Phone)),
  1259.                Child, data->GUI.CH_ACOLS[8] = MakeCheck(""),
  1260.                Child, LLabel(GetStr(MSG_DOB)),
  1261.             End,
  1262.             Child, HVSpace,
  1263.          End,
  1264.          Child, ColGroup(2), GroupFrameT(GetStr(MSG_CO_InfoExc)),
  1265.             Child, Label1(GetStr(MSG_CO_AddInfo)),
  1266.             Child, HGroup,
  1267.                Child, data->GUI.CH_ADDINFO = MakeCheck(GetStr(MSG_CO_AddInfo)),
  1268.                Child, HSpace(0),
  1269.             End,
  1270.             Child, Label1(GetStr(MSG_CO_AddToAddrbook)),
  1271.             Child, data->GUI.CY_ATAB = MakeCycle(atab, GetStr(MSG_CO_AddToAddrbook)),
  1272.             Child, Label2(GetStr(MSG_CO_Gallery)),
  1273.             Child, PopaslObject,
  1274.                MUIA_Popasl_Type     ,ASL_FileRequest,
  1275.                MUIA_Popstring_String,data->GUI.ST_GALLDIR = MakeString(SIZE_PATH,GetStr(MSG_CO_Gallery)),
  1276.                MUIA_Popstring_Button,PopButton(MUII_PopDrawer),
  1277.                ASLFR_DrawersOnly, TRUE,
  1278.             End,
  1279.             Child, Label2(GetStr(MSG_CO_NewGroup)),
  1280.             Child, data->GUI.ST_NEWGROUP = MakeString(SIZE_NAME,GetStr(MSG_CO_NewGroup)),
  1281.             Child, Label2(GetStr(MSG_CO_MyURL)),
  1282.             Child, data->GUI.ST_PHOTOURL = MakeString(SIZE_URL,GetStr(MSG_CO_MyURL)),
  1283.             Child, Label2(GetStr(MSG_CO_ProxyServer)),
  1284.             Child, data->GUI.ST_PROXY = MakeString(SIZE_HOST,GetStr(MSG_CO_ProxyServer)),
  1285.          End,
  1286.          Child, HVSpace,
  1287.       End)
  1288.    {
  1289.       SetHelp(data->GUI.ST_GALLDIR   ,MSG_HELP_CO_ST_GALLDIR   );
  1290.       SetHelp(data->GUI.ST_PHOTOURL  ,MSG_HELP_CO_ST_PHOTOURL  );
  1291.       SetHelp(data->GUI.ST_PROXY     ,MSG_HELP_CO_ST_PROXY     );
  1292.       SetHelp(data->GUI.ST_NEWGROUP  ,MSG_HELP_CO_ST_NEWGROUP  );
  1293.       SetHelp(data->GUI.CY_ATAB      ,MSG_HELP_CO_CY_ATAB      );
  1294.       SetHelp(data->GUI.CH_ADDINFO   ,MSG_HELP_WR_CH_ADDINFO   );
  1295.    }
  1296.    return grp;
  1297. }
  1298. ///
  1299. /// CO_Page13 (Scripts)
  1300. APTR CO_Page13(struct CO_ClassData *data)
  1301. {
  1302.    APTR grp;
  1303.    static char *stype[3];
  1304.    int i;
  1305.    stype[0] = "ARexx";
  1306.    stype[1] = "AmigaDOS";
  1307.    stype[2] = 0;
  1308.    if (grp = VGroup, GroupFrameT(GetStr(MSG_MA_Scripts)),
  1309.          MUIA_HelpNode, "CO13",
  1310.          Child, data->GUI.LV_REXX = ListviewObject,
  1311.             MUIA_CycleChain, 1,
  1312.             MUIA_Listview_List, ListObject,
  1313.                InputListFrame,
  1314.                MUIA_List_DisplayHook, &CO_LV_RxDspHook,
  1315.             End,
  1316.          End,
  1317.          Child, ColGroup(2),
  1318.             Child, Label2(GetStr(MSG_CO_Name)),
  1319.             Child, HGroup,
  1320.                Child, data->GUI.ST_RXNAME = MakeString(SIZE_NAME,GetStr(MSG_CO_Name)),
  1321.                Child, data->GUI.CY_ISADOS = MakeCycle(stype,""),
  1322.             End,
  1323.             Child, Label2(GetStr(MSG_CO_Script)),
  1324.             Child, PopaslObject,
  1325.                MUIA_Popasl_Type     ,ASL_FileRequest,
  1326.                MUIA_Popstring_String,data->GUI.ST_SCRIPT = MakeString(SIZE_PATHFILE,GetStr(MSG_CO_Script)),
  1327.                MUIA_Popstring_Button,PopButton(MUII_PopFile),
  1328.             End,
  1329.          End,
  1330.          Child, HGroup,
  1331.             Child, MakeCheckGroup((Object **)&data->GUI.CH_CONSOLE, GetStr(MSG_CO_OpenConsole)),
  1332.             Child, MakeCheckGroup((Object **)&data->GUI.CH_WAITTERM, GetStr(MSG_CO_WaitTerm)),
  1333.          End,
  1334.       End)
  1335.    {
  1336.       for (i = 1; i <= MAXRX; i++) DoMethod(data->GUI.LV_REXX, MUIM_List_InsertSingle, i, MUIV_List_Insert_Bottom);
  1337.       SetHelp(data->GUI.ST_RXNAME    ,MSG_HELP_CO_ST_RXNAME    );
  1338.       SetHelp(data->GUI.ST_SCRIPT    ,MSG_HELP_CO_ST_SCRIPT    );
  1339.       SetHelp(data->GUI.CY_ISADOS    ,MSG_HELP_CO_CY_ISADOS    );
  1340.       SetHelp(data->GUI.CH_CONSOLE   ,MSG_HELP_CO_CH_CONSOLE   );
  1341.       SetHelp(data->GUI.CH_WAITTERM  ,MSG_HELP_CO_CH_WAITTERM  );
  1342.       DoMethod(data->GUI.LV_REXX     ,MUIM_Notify,MUIA_List_Active    ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook,&CO_GetRXEntryHook,0);
  1343.       DoMethod(data->GUI.ST_RXNAME   ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook,&CO_PutRXEntryHook,0);
  1344.       DoMethod(data->GUI.ST_SCRIPT   ,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook,&CO_PutRXEntryHook,0);
  1345.       DoMethod(data->GUI.CY_ISADOS   ,MUIM_Notify,MUIA_Cycle_Active   ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook,&CO_PutRXEntryHook,0);
  1346.       DoMethod(data->GUI.CH_CONSOLE  ,MUIM_Notify,MUIA_Selected       ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook,&CO_PutRXEntryHook,0);
  1347.       DoMethod(data->GUI.CH_WAITTERM ,MUIM_Notify,MUIA_Selected       ,MUIV_EveryTime,MUIV_Notify_Application,3,MUIM_CallHook,&CO_PutRXEntryHook,0);
  1348.    }
  1349.    return grp;
  1350. }
  1351. ///
  1352. /// CO_Page14 (Mixed)
  1353. APTR CO_Page14(struct CO_ClassData *data)
  1354. {
  1355.    APTR grp;
  1356.    static char *dispnot[5], *empty[5];
  1357.    dispnot[0] = GetStr(MSG_CO_DispIgnore);
  1358.    dispnot[1] = GetStr(MSG_CO_DispDeny);
  1359.    dispnot[2] = GetStr(MSG_CO_DispAsk);
  1360.    dispnot[3] = GetStr(MSG_CO_DispAccept);
  1361.    dispnot[4] = NULL;
  1362.    empty[0] = empty[1] = empty[2] = empty[3] = "";
  1363.    empty[4] = NULL;
  1364.    if (grp = ScrollgroupObject,
  1365.          MUIA_HelpNode, "CO14",
  1366.          MUIA_Scrollgroup_FreeHoriz, FALSE,
  1367.          MUIA_Scrollgroup_Contents, VGroupV,
  1368.             Child, ColGroup(2), GroupFrameT(GetStr(MSG_CO_Paths)),
  1369.                Child, Label2(GetStr(MSG_CO_TempDir)),
  1370.                Child, PopaslObject,
  1371.                   MUIA_Popasl_Type     ,ASL_FileRequest,
  1372.                   MUIA_Popstring_String,data->GUI.ST_TEMPDIR = MakeString(SIZE_PATH,GetStr(MSG_CO_TempDir)),
  1373.                   MUIA_Popstring_Button,PopButton(MUII_PopDrawer),
  1374.                   ASLFR_DrawersOnly, TRUE,
  1375.                End,
  1376.             End,
  1377.             Child, VGroup, GroupFrameT(GetStr(MSG_CO_AppIcon)),
  1378.                Child, HGroup,
  1379.                   Child, Label2(GetStr(MSG_CO_PositionX)),
  1380.                   Child, data->GUI.ST_APPX = MakeInteger(5,"_X"),
  1381.                   Child, Label2("_Y"),
  1382.                   Child, data->GUI.ST_APPY = MakeInteger(5,"_Y"),
  1383.                End,
  1384.                Child, MakeCheckGroup((Object **)&data->GUI.CH_CLGADGET, GetStr(MSG_CO_CloseGadget)),
  1385.             End,
  1386.             Child, VGroup, GroupFrameT(GetStr(MSG_CO_SaveDelete)),
  1387.                Child, HGroup,
  1388.                   Child, data->GUI.CH_CONFIRM = MakeCheck(GetStr(MSG_CO_ConfirmDelPart1)),
  1389.                   Child, Label2(GetStr(MSG_CO_ConfirmDelPart1)),
  1390.                   Child, data->GUI.NB_CONFIRMDEL = MakeNumeric(1,50,FALSE),
  1391.                   Child, Label2(GetStr(MSG_CO_ConfirmDelPart2)),
  1392.                   Child, HSpace(0),
  1393.                End,
  1394.                Child, MakeCheckGroup((Object **)&data->GUI.CH_REMOVE, GetStr(MSG_CO_Remove)),
  1395.                Child, MakeCheckGroup((Object **)&data->GUI.CH_SAVESENT, GetStr(MSG_CO_SaveSent)),
  1396.             End,
  1397.            Child, VGroup, GroupFrameT(GetStr(MSG_CO_MDN)),
  1398.                Child, ColGroup(5),
  1399.                   Child, LLabel(GetStr(MSG_Display)),
  1400.                   Child, LLabel(GetStr(MSG_Process)),
  1401.                   Child, LLabel(GetStr(MSG_Del)),
  1402.                   Child, LLabel(GetStr(MSG_Filter)),
  1403.                   Child, HSpace(0),
  1404.                   Child, data->GUI.RA_MDN_DISP = RadioObject, MUIA_Radio_Entries, empty, MUIA_CycleChain, TRUE, End,
  1405.                   Child, data->GUI.RA_MDN_PROC = RadioObject, MUIA_Radio_Entries, empty, MUIA_CycleChain, TRUE, End,
  1406.                   Child, data->GUI.RA_MDN_DELE = RadioObject, MUIA_Radio_Entries, empty, MUIA_CycleChain, TRUE, End,
  1407.                   Child, data->GUI.RA_MDN_RULE = RadioObject, MUIA_Radio_Entries, dispnot, MUIA_CycleChain, TRUE, End,
  1408.                   Child, HSpace(0),
  1409.                End,
  1410.                Child, MakeCheckGroup((Object **)&data->GUI.CH_SEND_MDN, GetStr(MSG_CO_SendAtOnce)),
  1411.             End,
  1412.             Child, HGroup, GroupFrameT(GetStr(MSG_CO_XPK)),
  1413.                Child, ColGroup(5),
  1414.                   Child, Label1(GetStr(MSG_CO_XPKPack)),
  1415.                   Child, MakeXPKPop(&data->GUI.TX_PACKER, TRUE, FALSE),
  1416.                   Child, data->GUI.NB_PACKER = MakeNumeric(0,100,TRUE),
  1417.                   Child, HSpace(8),
  1418.                   Child, HGroup,
  1419.                      Child, LLabel(GetStr(MSG_CO_Archiver)),
  1420.                      Child, HSpace(0),
  1421.                   End,
  1422.                   Child, Label1(GetStr(MSG_CO_XPKPackEnc)),
  1423.                   Child, MakeXPKPop(&data->GUI.TX_ENCPACK, TRUE, TRUE),
  1424.                   Child, data->GUI.NB_ENCPACK = MakeNumeric(0,100,TRUE),
  1425.                   Child, HSpace(8),
  1426.                   Child, MakeVarPop(&data->GUI.ST_ARCHIVER, 3, SIZE_COMMAND, GetStr(MSG_CO_Archiver)),
  1427.                End,
  1428.             End,
  1429.             Child, HVSpace,
  1430.          End,
  1431.       End)
  1432.    {
  1433.       SetHelp(data->GUI.ST_TEMPDIR   ,MSG_HELP_CO_ST_TEMPDIR   );
  1434.       SetHelp(data->GUI.ST_APPX      ,MSG_HELP_CO_ST_APP       );
  1435.       SetHelp(data->GUI.ST_APPY      ,MSG_HELP_CO_ST_APP       );
  1436.       SetHelp(data->GUI.CH_CLGADGET  ,MSG_HELP_CO_CH_CLGADGET  );
  1437.       SetHelp(data->GUI.CH_CONFIRM   ,MSG_HELP_CO_CH_CONFIRM   );
  1438.       SetHelp(data->GUI.NB_CONFIRMDEL,MSG_HELP_CO_NB_CONFIRMDEL);
  1439.       SetHelp(data->GUI.CH_REMOVE    ,MSG_HELP_CO_CH_REMOVE    );
  1440.       SetHelp(data->GUI.CH_SAVESENT  ,MSG_HELP_CO_CH_SAVESENT  );
  1441.       SetHelp(data->GUI.RA_MDN_DISP  ,MSG_HELP_CO_RA_MDN_DISP  );
  1442.       SetHelp(data->GUI.RA_MDN_PROC  ,MSG_HELP_CO_RA_MDN_PROC  );
  1443.       SetHelp(data->GUI.RA_MDN_DELE  ,MSG_HELP_CO_RA_MDN_DELE  );
  1444.       SetHelp(data->GUI.RA_MDN_RULE  ,MSG_HELP_CO_RA_MDN_RULE  );
  1445.       SetHelp(data->GUI.CH_SEND_MDN  ,MSG_HELP_CO_CH_SEND_MDN  );
  1446.       SetHelp(data->GUI.TX_ENCPACK   ,MSG_HELP_CO_TX_ENCPACK   );
  1447.       SetHelp(data->GUI.TX_PACKER    ,MSG_HELP_CO_TX_PACKER    );
  1448.       SetHelp(data->GUI.NB_ENCPACK   ,MSG_HELP_CO_NB_ENCPACK   );
  1449.       SetHelp(data->GUI.NB_PACKER    ,MSG_HELP_CO_NB_ENCPACK   );
  1450.       SetHelp(data->GUI.ST_ARCHIVER  ,MSG_HELP_CO_ST_ARCHIVER  );
  1451.    }
  1452.    return grp;
  1453. }
  1454. ///
  1455.  
  1456.